On 06/14/2011 07:10 AM, David Scaperoth wrote: > On Tue, Oct 19, 2010 at 9:39 PM, Josh Blum <j...@joshknows.com> wrote: > >> >> >> On 10/19/2010 06:14 PM, b...@sigmatix.com wrote: >> >>> >>> We're exploring the possibility of monitoring the overrun/underrun >>> status via the USRP2 UART. >>> >>> >> FYI, the USRP2 under UHD reports underflows as async messages to the host >> that can be accessed through the API. There are no true overflows since the >> implementation drops packets on the ground when the host buffers fill. But >> you can observe packet loss by inspecting the timestamps on a packet. This >> is done in the benchmark rx example application. >> >> > I'm a little confused by the 'no true overflows' comment. Isn't dropping > packets on the ground still an overflow? Perhaps you mean that the host > doesn't report to main when there are certain types of overflows? Has this > changed some for the UHD_003.001.000 code? > > From what I can tell, the host code appears to handle overruns in two > specific places (printed in io_impl.cpp). One appears to be checking > sequence numbers (indicates that the kernel is dropping packets) and one > appears to be getting a message which translates into an error code. In > metadata.cpp it refers to the error as overrun of 'internal' receive buffer > (translating that as the FPGA internal buffer). > > AFAIK, if the USRP2 hardware detects an overrun, streaming stops (I've been > using STREAM_MODE_CONTINUOUS), and in the host code, the stream command is > automatically resent in UHD to start streaming again. > > I actually attempted to recreate a scenario where I could distinguish > between the two, so I changed one of the printouts to an 'X' (hardware error > message) instead of an 'O' and what I found was that the if I loaded down > the CPU with lots of non-uhd related tasks and then ran > benchmark_rx_rate.cpp, then I could see only O's (sequence error message > from the kernel). In the second case, I just upped the sampling rate until > my PC couldn't take any more and I received X's and O's equally. >
I have written some docs for the underflow/overflow conditions. I have not uploaded them yet, because I am waiting to merge some work that will generate inline message packets for USRP2/N-Series overflow: This should make some more sense of things: http://pastebin.com/Vh7mq3TN -Josh _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio