Hi Marcus,

Yes, it is a loopback through computer.  I have 3 threads (in addition to the 
DPDK threads):

Thread1 : Read from UHD into a circular buffer A

Thread2: Read from circular buffer A, minimal processing, write to circular 
buffer B

Thread3: Read from circular buffer B, write to UHD


The circular buffer uses standard synchronization (mutex/condvar).  My next 
plan is to try a lock-free buffer.  The fact that the system works at 100 Msps 
but fails extremely infrequently (in terms of samples processed) makes me think 
that something in the kernel is taking control of the CPU(s) even though they 
are isolated.


Eugene.



Responding to Marcus... for some reason his response did not show up in my 
email.

-----------------

This is a "loopback through the computer stack" type application?
Basically a receiver and a transmitter, in separate threads, but
  sharing a buffer between them?

These can be tricky, and plenty of others have "stumbled" with this type
of app, particularly at high sample rates.   I've never done one of
  these myself, but I suspect that some kind of elastic FIFO mechanism
will be required.

I"m happy to have others chime in, but this class of application,
despite its appearance of simplicity can reveal the limitations of
  ordinary general-purpose operating systems, and their schedulers, and
buffer-management systems.



________________________

Eugene Grayver, Ph.D.
Aerospace Corp., Principal Engineer
Tel: 310.336.1274
________________________
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to