> I agree, when the system is treated as a
> monolithic black-box it is the only way one CAN address the problem
> (which means that, for most of us this is the only way to deal with
> the problem). OTOH, there are people with the tools to allow us to see
> inside the black-box.
> 

I couldn't agree more.  The problem, however, is that there is not a
group of people who, when taken together:

a) Have the necessary domain-specific knowledge to solve the problem
b) Have the time or inclination to solve it
c) Can solve the problem for the general case, such that it will work on
everybody's system... irrespective of the types of devices, drivers, and
CPUs they're running.

> I would give large odds that the problem is one of some high-priority
> task stealing lots of cycles on a periodic basis or a scheduling issue
> between the threads of PowerSDR, VAC, and whatever other digital mode
> program one is running. 

Well, using the term "task" loosely, what you obviously must be correct:
SOMEthing isn't getting to run when it needs to, and thus SOMEthing is
getting discarded, overflowing, or otherwise buggering things up.

If Flex called ME and asked me (given that I know something about
Windows OS and I/O subsystem architecture) to help fix this problem,
here's what I'd do:

a) Sit down with the people who understand signal processing in PowerSDR
and ask them what latency requirements they have, even an approximation
would help.  Try to find out how data moves through the system, and
under what loads and conditions.  Cuz, when it comes to signal
processing, I know less than nothing.
b) Pick ONE SYSTEM... with a specific set of peripherals and drivers and
hold that constant.
c) Take the necessary measurements to find the problem.

Assuming you can find a suitable set of configuration parameters,
publish the system information as THE "Reference System."  

Cuz, if Flex could say "Go out and buy a Dell XYZ, set it up with these
parameters and you'll be happy" I bet that's what a lot of people would
do.  I know *I* would.

The only caveat is, given that reference system, neither the peripherals
nor the software nor even the specific versions of the drivers on that
system can change without the risk of significantly changing the
system's behavior.

I've solved problems like this in the past.  Without getting into war
stories, I worked with a client once who had an imaging device that
could tolerate no more than 1ms latency. That, folks, is a LOT of
latency.  However, their device (controlled by a complex embedded
Windows system) when working in production environments (not their lab,
unfortunately) encountered a problem about once a day, always at a
different time.  Turned out, the problem was caused by combined
interrupt and DPC latency created by a combination of their net card and
the IDE controller handling a paging operation.  In other words, it had
nothing to do with their device or any of their image processing
threads.  We locked (pinned) their code in memory (making it
non-pagable) and... the problem was solved.

de Peter K1PGV


_______________________________________________
FlexRadio Systems Mailing List
FlexRadio@flex-radio.biz
http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz
Archives: http://www.mail-archive.com/flexradio%40flex-radio.biz/
Knowledge Base: http://kb.flex-radio.com/  Homepage: http://www.flex-radio.com/

Reply via email to