[hpsdr] Observations on the new HPSDR firmware/PowerSDR
Dan Quigley
dquigley at msn.com
Sun May 31 22:22:04 PDT 2009
Hi Bill,
Yes I am using Process Explorer. This is an odd one, but I believe it is
germane to problems others have reported. The length of time appears to be
random from my experience. (after today from 0 to a couple of hours) I am
90% convinced it is a PowerSDR issue and related to (or exacerbated by)
sample rate but I have not found a reproducible trigger. There may be a
correlation to the GC - I watched the .NET runtime and its memory heap was
definitely fluid during PowerSDR abnormal operations but that may be a
reaction to something else. This does smell a bit like a race condition
issue but it is too early to be sure.
Some additional observations:
Last night I chatted for 2 hours on 75m phone using HPSDR without any issue.
Rx was stellar and CPU stayed under 30% for the most part and there were no
unusual audio reports on tx.
Early this morning I wanted to make some CQWW WPX contacts on 20m. When I
powered up the rig, I observed the relay chatter and distorted audio
(described by others), the CPU was north of 80% and the system was totally
unusable (Mode or DSP functions did not matter). When I dropped the sample
rate to 48k it settled right down. An hour later I changed the sample rate
back to 192k and it worked fine for an hour or so. During contest ops
today, I had to stop PowerSDR three times and restart it, but I never
observed the morning chatter/distortion issues later in the day. I have not
found it necessary to power cycle the hardware.
This may be two separate problems. The only time I have seen the
chatter/distortion issue was after this morning's cold start. The
degradation/pop issue is reproducible, but on a random basis.
Tonight I am on 75m phone again and have encountered no problems.
Wash-Rinse-Repeat... I'll try 20m tomorrow morning again.
If you can send or point me to PowerSDR release symbol files, my stack
traces may be more helpful...
Best,
Dan
-----Original Message-----
From: Bill Tracey [mailto:bill at ewjt.com]
Sent: Sunday, May 31, 2009 9:45 PM
To: Dan Quigley; hpsdr at openhpsdr.org
Subject: Re: [hpsdr] Observations on the new HPSDR firmware/PowerSDR
Hi Dan,
Interesting observations -- will have to look
into it. How long does it take it to degrade to
where you're hearing bands and pops? I've had
mine running listening to a tone for the last 30
mins or so and haven't heard it glitch. I'm on
a Quad Core on Vista so have a bit different setup than you do.
A time oriented degradation leads me to the
perhaps garbage collection issues, but I did not
think any of our main path (audio buffers) stuff
relied on garbage collection.
How are grabbing the call stacks - Process Explorer?
Looks like it might be time to learn a bit on .NET profiling.
Cheers
Bill (kd5tfd)
At 04:52 PM 5/30/2009, Dan Quigley wrote:
>***** High Performance Software Defined Radio Discussion List *****
>
>
>Content-Type: multipart/alternative;
> boundary="----=_NextPart_000_0006_01C9E136.326233F0"
>Content-Language: en-us
>
>I hope this helps.
>
>On my WinXP box running on an Intel 2.1Ghz duo
>core with 3GB of ram, PowerSDR works fine (read
>great!) for a "while" then the receive function
>gradually starts degrading (drop outs/pops etc)
>until audio eventually stops. CPU also rises
>with the incidence of popping/drop outs. How
>long it takes to degrade appears to be related
>to audio buffer size and sample rate
>settings. The higher the sample rate the less
>amount of time it takes for performance to
>degrade. Transmitting also appears to
>accelerate the time it takes to degrade.
>
>Good performance returns when you restart
>PowerSDR (first waiting for the previous
>instance to unload, which can take a while.
>
>When running fine (e.g. no drop outs) , the
>thread that consumes most of the CPU cycles in
>the PowerSDR.exe process has this call
>stack (or one very similar), at 192K bandwidth.
>
>Thread 5-11% cpu
>ntkrnlpa.exe!NtBuildNumber+0x43
>ntkrnlpa.exe!MmIsDriverVerifying+0xbb0
>ntkrnlpa.exe!MmIsDriverVerifying+0x1492
>ntkrnlpa.exe!PoShutdownBugCheck+0x39e9
>ntkrnlpa.exe!KeSynchronizeExecution+0x30c
>ntdll.dll!KiFastSystemCallRet
>KERNEL32.dll!WaitForMultipleObjects+0x18
>pthreadVC.dll!pthread_exit+0x111
>
>Once performance degrades and drop outs begin to
>occur frequently. This thread and call stack
>floats quickly to the top of the sorted by cpu
>list. Then stays at the top. This thread jumps
>to 50% cpu when you close PowerSDR and stays
>there for a minute or so. When it eventually
>terminates, PowerSDR is unloaded from memory:
>
>Thread 34% cpu
>Stack:
>ntkrnlpa.exe!NtBuildNumber+0x43
>ntkrnlpa.exe!MmIsDriverVerifying+0xbb0
>hal.dll!HalClearSoftwareInterrupt+0x342
>DttSP.dll!SetKeyerSampleRate+0x27c8
>DttSP.dll!PolyPhaseFIRF+0x28ca
>
>When the system has totally degraded this thread stays at 15% cpu
>Thread 15% cpu
>Stack:
>ntkrnlpa.exe!NtBuildNumber+0x43
>ntkrnlpa.exe!MmIsDriverVerifying+0xbb0
>ntkrnlpa.exe!MmIsDriverVerifying+0x1492
>ntkrnlpa.exe!PoShutdownBugCheck+0x3702
>ntkrnlpa.exe!KeSynchronizeExecution+0x30c
>ntdll.dll!KiFastSystemCallRet
>KERNEL32.dll!WaitForSingleObject+0x12
>libusb0.dll!usb_set_debug+0x266
>libusb0.dll!usb_reap_async+0xf
>libusb0.dll!usb_bulk_write+0x1e
>JanusAudio.dll!OzyBulkWrite+0x21
1243833724.0
More information about the Hpsdr
mailing list