Hi Rob,
thank you for your comments.
I did not think about using multiple streamers with multi_usrp, but will
give it a try before considering DPDK.
More important, about your two questions:
Using the Replay block is not an option, but I indeed forgot to add
clock_soure=external and time_source=external to the arguments of
benchmark_rate. Now if I use external synchronization, the benchmark
just hangs with <5% CPU usage and never finishes.
Running rx benchmarks however works, and I also never experienced any
sync issues when streaming data from two USRPs in parallel with my
custom application.
I hope you asked this question because you had a suspicion.
Regards,
Max
I have two X300 USRPs connected to the same PC by 10Gb. Both USRPs are
synchronized with 10MHz.
I can receive data without any overflows at 200 MHz (one channel per USRP), but
transmitting results in massive underflows for 184.32 and 200 MHz.
benchmark_rate shows the same behavior when transmitting on both USRPs at the same
time; sampling rates <= 100 MHz or using just one USRP however works without
underflows.
But I also tried running two benchmark_rate processes in parallel, one for each
of the USRPs, and this works flawlessly.
Is there any explanation, why using uhd::usrp::multi_usrp results in massive
underflows, while operating two devices in parallel in general seems to work?
I assume using two uhd::device objects with independent tx_streamers could be a
workaround for me. But using multi_usrp nevertheless seems more convenient.
Hi Max,
I don't know the direct answer to your issue, but I have a few comments:
1) Tx Underruns have always been a much bigger issue than Rx Overruns.
It is always harder to get this solved.
2) Even with multi_usrp, you can have 2 threads running. So, you don't
need to have 2 device objects. I do this in my software. You can get
a streamer for channel 0 and a separate streamer for channel 1 and
then run them in different threads. Not quite as convenient as having
a single streamer though. And, not certain if it will solve the issue
for you.
3) With UHD 3.15 and earlier, using DPDK helps alot with streaming.
It is a pain to get configured, but it does stream much better once
properly configured
4) With UHD 4.0, I've heard that streaming is improved overall such
that it might work fine without DPDK. But, that is a big question
mark and there are always reasons to be cautious when jumping on to
the next best thing...
Two questions:
1) When it fails with benchmark rate, are you setting PPS to external
so that both device clocks are set to the same time?
2) Is your Tx waveform dynamically changing or is it a fixed length
sequence that is repeated? If the latter, perhaps you could transmit
directly from the FPGA using the Replay block.
Rob
Rob
_______________________________________________
USRP-users mailing list
[email protected]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com