Overrun Underrun False packets issues on Gnuradio using Beagle Board

Hello,

I have a Beagle Board running Gnuradio(3.2.1). I copied the
gnuradio-examples folder from Gnuradio (3.2.2) on the Beagle Board
(BB).
When I run the usrp_benchmark_usb, I get a maximum throughput of
4MB/sec, instead of 32MB/sec on my regular Linux desktop.
Here is my problem: On the Beagle Board, I am getting lots of dropped
packets, most false packets, u0 and uU when running benchmark_tx/rx, and
tunnel.py.
My first assumption is that I have a USB bottleneck. Am I correct?

I have tried to resolve these problems using a few options so far:
Option 1. Reducing the rate (I modified the gnuradio examples files
accordingly), so I am pretty sure I am reducing the rate of
transmission. [The verbose statements for Requested bit rate and Actual
bitrate are the same]. That did not resolve my problems. Why?

Option 2. Changing buffer size. I am trying to tweak the buffer size(by
modifying fusb_block_size and nblocks) , but I do not know how to check
that the change actually occured in realtime.
(a) Where can I find the real value of the realtime buffer size so I can
print it in verbose. I tried to trace it down, but eventually hit a
wall.
(b) How do you think I can change the buffer size and rate in order to
satisfy a maximum throughput of 2MB/sec and still get reliable data?
© I know that buffer size is B*N, where B is a multiple of 512 bytes.
I also know that a large N can cause latency, but I want to disregard
any latency issues for now.
Will I resolve anything by changing B and N? I have attempted a few
combinations of B, N and rate, still no solutions.

Any suggestions to resolve these issues are welcome.
Thanks,

Jeannette

On 04/08/2010 12:07 AM, Jeannette Nounagnon wrote:

Hello,

I have a Beagle Board running Gnuradio(3.2.1). I copied the
gnuradio-examples folder from Gnuradio (3.2.2) on the Beagle Board (BB).
When I run the usrp_benchmark_usb, I get a maximum throughput of
4MB/sec, instead of 32MB/sec on my regular Linux desktop.
Here is my problem: On the Beagle Board, I am getting lots of dropped
packets, most false packets, u0 and uU when running benchmark_tx/rx, and
tunnel.py.
My first assumption is that I have a USB bottleneck. Am I correct?

Yes. I’m not sure exactly where the bottleneck is, but I suspect the USB
drivers for the OMAP3 have not been optimized for speed.

I have tried to resolve these problems using a few options so far:
Option 1. Reducing the rate (I modified the gnuradio examples files
accordingly), so I am pretty sure I am reducing the rate of
transmission. [The verbose statements for Requested bit rate and Actual
bitrate are the same]. That did not resolve my problems. Why?

Benchmark_{tx,rx} add signal processing right? I would run oprofile and
see what signal processing block is using most of the CPU time. I
suspect that rewriting the signall processing in assembler using NEON
will help a great deal.

Finally, I’d point out that beagleboard.org is a mentoring organization
for Google Summer of Code. The proposal deadline is sometime tomorrow.
We’d be glad to consider a proposal based on getting this working really
well on the Beagle Board.

Philip