I’m a puzzled by some UHD behavior and wondering if I need a new host
system. I’m not doing any signal processing in the host – just
transmitting from a buffer and/or receiving from a buffer. Later, we’ll
be wanting to do more processing with two USRP2s both transmitting and
receiving at the same time and may want 25 Msps in some cases.
I’ve managed to get simultaneous receive threads going for each of two
USRP2s, both at 25 Msps (big buffers are good). The GUI still updates,
but is a little sluggish. It’s fragile, though. If I do much at all with
the GUI (sometimes just moving the mouse), recv’s start timing out.
System Monitor shows no memory pressure and both CPUs at 50-60%. FWIW,
I’m running my C++ app via SSH from another machine.
Transmitting is worse. Even a solo transmit thread at 25 Msps (plus a
thread calling recv_async_msg) causes the GUI to be unusable and I get
frequent Us on both the host and the USRP2’s serial port, as well as
tons of EVENT_CODE_SEQ_ERROR and EVENT_CODE_SEQ_ERROR_IN_BURST messages
from recv_async_msg. I can’t tell what the CPU utilization is because
System Monitor stops updating. 6.25 Msps is better, but I still get a
few Us and a bunch of EVENT_CODE_SEQ_ERROR and
EVENT_CODE_SEQ_ERROR_IN_BURST messages. System Monitor manages to update
and shows CPU utilization of 80% and 55%. Again, I’m only transmitting
from a buffer that I fill once up front and send over and over again
with no signal processing.
I’m specifying recv_buff_size=100e6 and send_buff_size=100e6;
net.core.rmem_max and net.core.wmem_max are set to 100000000. I’m
calling uhd::set_thread_priority_safe from each of my threads. I’m using
the latest gnuradio and UHD software/firmware/FPGA (the recent release
with USRP1 support). I have Ubuntu 10.4 with stock ethernet drivers.
I’ve itemized a few details of the hardware setup below. What systems
are you all using for MIMO-like work with USRP2s and UHD? What systems
do you recommend or wish you had? Are there other changes I should make
to my current system?
Dell DCDO tower manufactured in 2007
Dual-core Xeon 5110 @ 1.60 GHz
2 GB RAM
Lots of slots - mix of PCI, PCIe, PCI-X
Ethernet 0: USRP2 with DBSRX
Onboard 10/100/1000 Ethernet.
USRP2 says no flow control and we’re getting another PCI Express card.
Ethernet 1: network connection
D-Link PCI NIC
No flow control
Ethernet 2: USRP2 with XCVR2450
StarTech.com PCI Express 10/100/1000 Ethernet NIC
Ubuntu identifies it as Broadcom NetXtreme BCM5752
USRP2 says it gets WE_TX flow control