benchmark_rate uses the multi_usrp object which will configure an RFNoC
graph that looks like "Radio->DDC->Host" for each rx channel.  So, this
doesn't include the FFT or phosphor blocks from your gnuradio flowgraph.
So, I guess the problem still could exist in either gr-ettus or uhd with
respect to those two blocks.

Rob

On Fri, Feb 1, 2019 at 1:53 PM Jason Matusiak <ja...@gardettoengineering.com>
wrote:

> I needed to make some mods to your command, but it seems to have worked.
> Not sure why it tried to list tx channels since I didn't request any, but
> it doesn't seemed to have gotten in the way.  I am guessing this points
> towards your gr-ettus concerns.
>
> jmatusiak@sdr-server-04:/opt/gnuradio/rfnoc/src/uhd/host/build/examples$
> ./benchmark_rate --args="addr0=192.168.42.2,addr1=192.168.52.2"
> --ref=internal --pps=internal --rx_channels="0,1,2,3,4,5,6,7" --rx_rate=25e6
> [INFO] [UHD] linux; GNU C++ version 4.8.5 20150623 (Red Hat 4.8.5-36);
> Boost_105300; UHD_3.14.0.0-85-g33233e5c
> [WARNING] [UHD] Unable to set the thread priority. Performance may be
> negatively affected.
> Please see the general application notes in the manual for instructions.
> EnvironmentError: OSError: error in pthread_setschedparam
>
> [00:00:00.000022] Creating the usrp device with:
> addr0=192.168.42.2,addr1=192.168.52.2...
> [INFO] [X300] X300 initialization sequence...
> [INFO] [X300] Maximum frame size: 7972 bytes.
> [WARNING] [X300] For the 192.168.42.2 connection, UHD recommends a receive
> frame size of at least 8000 for best
> performance, but your configuration will only allow 7972.This may
> negatively impact your maximum achievable sample rate.
> Check the MTU on the interface and/or the recv_frame_size argument.
> [INFO] [X300] Maximum frame size: 7972 bytes.
> [WARNING] [X300] For the 192.168.52.2 connection, UHD recommends a receive
> frame size of at least 8000 for best
> performance, but your configuration will only allow 7972.This may
> negatively impact your maximum achievable sample rate.
> Check the MTU on the interface and/or the recv_frame_size argument.
> [INFO] [X300] Radio 1x clock: 200 MHz
> [INFO] [X300] Radio 1x clock: 200 MHz
> [INFO] [GPS] Found an internal GPSDO: LC_XO, Firmware Rev 0.929a
> [INFO] [GPS] Found an internal GPSDO: LC_XO, Firmware Rev 0.929a
> [INFO] [0/DmaFIFO_0] Initializing block control (NOC ID:
> 0xF1F0D00000000000)
> [INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1302 MB/s)
> [INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1316 MB/s)
> [INFO] [1/DmaFIFO_0] Initializing block control (NOC ID:
> 0xF1F0D00000000000)
> [INFO] [1/DmaFIFO_0] BIST passed (Throughput: 1305 MB/s)
> [INFO] [1/DmaFIFO_0] BIST passed (Throughput: 1314 MB/s)
> [INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000000001)
> [INFO] [1/Radio_0] Initializing block control (NOC ID: 0x12AD100000000001)
> [INFO] [0/Radio_1] Initializing block control (NOC ID: 0x12AD100000000001)
> [INFO] [1/Radio_1] Initializing block control (NOC ID: 0x12AD100000000001)
> [INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000000)
> [INFO] [1/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000000)
> [INFO] [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000000)
> [INFO] [1/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000000)
> [INFO] [0/Window_0] Initializing block control (NOC ID: 0xD053000000000000)
> [INFO] [1/Window_0] Initializing block control (NOC ID: 0xD053000000000000)
> [INFO] [0/Window_1] Initializing block control (NOC ID: 0xD053000000000000)
> [INFO] [1/Window_1] Initializing block control (NOC ID: 0xD053000000000000)
> [WARNING] [RFNOC] Can't find a block controller for key FFT, using default
> block controller!
> [INFO] [0/FFT_0] Initializing block control (NOC ID: 0xFF70000000000000)
> [WARNING] [RFNOC] Can't find a block controller for key FFT, using default
> block controller!
> [INFO] [1/FFT_0] Initializing block control (NOC ID: 0xFF70000000000000)
> [WARNING] [RFNOC] Can't find a block controller for key FFT, using default
> block controller!
> [INFO] [0/FFT_1] Initializing block control (NOC ID: 0xFF70000000000000)
> [WARNING] [RFNOC] Can't find a block controller for key FFT, using default
> block controller!
> [INFO] [1/FFT_1] Initializing block control (NOC ID: 0xFF70000000000000)
> [WARNING] [RFNOC] Can't find a block controller for key fosphor, using
> default block controller!
> [INFO] [0/fosphor_0] Initializing block control (NOC ID:
> 0x666F000000000000)
> [WARNING] [RFNOC] Can't find a block controller for key fosphor, using
> default block controller!
> [INFO] [1/fosphor_0] Initializing block control (NOC ID:
> 0x666F000000000000)
> [WARNING] [RFNOC] Can't find a block controller for key fosphor, using
> default block controller!
> [INFO] [0/fosphor_1] Initializing block control (NOC ID:
> 0x666F000000000000)
> [WARNING] [RFNOC] Can't find a block controller for key fosphor, using
> default block controller!
> [INFO] [1/fosphor_1] Initializing block control (NOC ID:
> 0x666F000000000000)
> [WARNING] [RFNOC] Can't find a block controller for key FIFO, using
> default block controller!
> [INFO] [0/FIFO_0] Initializing block control (NOC ID: 0xF1F0000000000000)
> [WARNING] [RFNOC] Can't find a block controller for key FIFO, using
> default block controller!
> [INFO] [1/FIFO_0] Initializing block control (NOC ID: 0xF1F0000000000000)
> [WARNING] [RFNOC] Can't find a block controller for key FIFO, using
> default block controller!
> [INFO] [0/FIFO_1] Initializing block control (NOC ID: 0xF1F0000000000000)
> [WARNING] [RFNOC] Can't find a block controller for key FIFO, using
> default block controller!
> [INFO] [1/FIFO_1] Initializing block control (NOC ID: 0xF1F0000000000000)
> [WARNING] [X300] Cannot update master clock rate! X300 Series does not
> allow changing the clock rate during runtime.
> [WARNING] [X300] Cannot update master clock rate! X300 Series does not
> allow changing the clock rate during runtime.
> [WARNING] [RFNOC] [legacy_compat] No DUCs detected. You will only be able
> to transmit at the radio frontend rate.
> [WARNING] [X300 RADIO] Requesting invalid sampling rate from device: 200
> MHz. Actual rate is: 100 MHz.
> [WARNING] [X300 RADIO] Requesting invalid sampling rate from device: 200
> MHz. Actual rate is: 100 MHz.
> [WARNING] [X300 RADIO] Requesting invalid sampling rate from device: 200
> MHz. Actual rate is: 100 MHz.
> [WARNING] [X300 RADIO] Requesting invalid sampling rate from device: 200
> MHz. Actual rate is: 100 MHz.
> Using Device: Multi USRP:
>   Device: X-Series Device
>   Mboard 0: X310
>   Mboard 1: X310
>   RX Channel: 0
>     RX DSP: 0
>     RX Dboard: A
>     RX Subdev: TwinRX RX0
>   RX Channel: 1
>     RX DSP: 1
>     RX Dboard: A
>     RX Subdev: TwinRX RX1
>   RX Channel: 2
>     RX DSP: 0
>     RX Dboard: B
>     RX Subdev: TwinRX RX0
>   RX Channel: 3
>     RX DSP: 1
>     RX Dboard: B
>     RX Subdev: TwinRX RX1
>   RX Channel: 4
>     RX DSP: 0
>     RX Dboard: A
>     RX Subdev: TwinRX RX0
>   RX Channel: 5
>     RX DSP: 1
>     RX Dboard: A
>     RX Subdev: TwinRX RX1
>   RX Channel: 6
>     RX DSP: 0
>     RX Dboard: B
>     RX Subdev: TwinRX RX0
>   RX Channel: 7
>     RX DSP: 1
>     RX Dboard: B
>     RX Subdev: TwinRX RX1
>   TX Channel: 0
>     TX DSP: 0
>     TX Dboard: A
>     TX Subdev: Unknown (0x0092) - 0
>   TX Channel: 1
>     TX DSP: 0
>     TX Dboard: B
>     TX Subdev: Unknown (0x0092) - 0
>   TX Channel: 2
>     TX DSP: 0
>     TX Dboard: A
>     TX Subdev: Unknown (0x0092) - 0
>   TX Channel: 3
>     TX DSP: 0
>     TX Dboard: B
>     TX Subdev: Unknown (0x0092) - 0
>
> [00:00:05.506538] Setting device timestamp to 0...
> [INFO] [MULTI_USRP]     1) catch time transition at pps edge
> [INFO] [MULTI_USRP]     2) set times next pps (synchronously)
> [WARNING] [MULTI_USRP] Detected time deviation between board 1 and board 0.
> Board 0 time is 0.000771 seconds.
> Board 1 time is 0.000349 seconds.
>
> [WARNING] [UHD] Unable to set the thread priority. Performance may be
> negatively affected.
> Please see the general application notes in the manual for instructions.
> EnvironmentError: OSError: error in pthread_setschedparam
> [00:00:06.656038] Testing receive rate 25.000000 Msps on 8 channels
> [00:00:17.357375] Benchmark complete.
>
>
> Benchmark rate summary:
>   Num received samples:     1989811512
>   Num dropped samples:      0
>   Num overruns detected:    0
>   Num transmitted samples:  0
>   Num sequence errors (Tx): 0
>   Num sequence errors (Rx): 0
>   Num underruns detected:   0
>   Num late commands:        0
>   Num timeouts (Tx):        0
>   Num timeouts (Rx):        0
>
>
> Done!
>
>
> ------------------------------
> *From:* Rob Kossler <rkoss...@nd.edu>
> *Sent:* Friday, February 1, 2019 1:43 PM
> *To:* Jason Matusiak
> *Cc:* Ettus Mail List
> *Subject:* Re: [USRP-users] two X310s in one RFNoC flowgraph
>
> I don't know for sure, but it might be possible to try:
> benchmark_rate --args="addr0=...,addr1=..." --ref=external --sync=external
> --rx_channels="0,1,2,3,4,5,6,7" --rx_rate=25e6
>
> If this worked, it might show that the problem is in gr-ettus.  But, you
> might need to test the concept first using non-twinrx.
> Rob
>
> On Fri, Feb 1, 2019 at 1:36 PM Jason Matusiak <
> ja...@gardettoengineering.com> wrote:
>
> I'll check if fosphor is the issue, but it isn't for my non-twinrx test.
> I currently have two X310s, dual receive, so 4 total receives, to a single
> host.  I had to much with settings to get it to work, but it certainly
> isn't an issue in that setup.
>
> I just double-checked and it isn't the fosphor block.  I did notice that
> every once in a while it actually seems to make connection (when I reduce
> my throughput tremendously), but I don't see data.  Without changing
> settings, I would say it doesn't error out about 1/10 times.  So I think
> there is some sort of issue where it assigns IP addresses to the two
> devices, and then there is a race condition with which one responds
> first....
>
> ------------------------------
> *From:* Rob Kossler <rkoss...@nd.edu>
> *Sent:* Friday, February 1, 2019 1:28 PM
> *To:* Jason Matusiak
> *Cc:* Ettus Mail List
> *Subject:* Re: [USRP-users] two X310s in one RFNoC flowgraph
>
> If you use 2 X310 with non-TwinRx daughterboards, it can work with the
> same flowgraph (including the fosphor block)?  I ask because I am
> wondering if there could be a bug in the fosphor block's handling of device
> number (either gr-ettus or uhd).
> Rob
>
> On Fri, Feb 1, 2019 at 1:19 PM Jason Matusiak <
> ja...@gardettoengineering.com> wrote:
>
> When I run my flowgraph with the addresses setup that worked before
> twinrx, it starts to set everything up and seems to be talking to both ip
> addresses.  Then it craps out here:
>
> [WARNING] [RFNOC] Assuming max packet size for 0/DDC_0
> [WARNING] [RFNOC] Assuming max packet size for 0/DDC_1
> [WARNING] [RFNOC] Assuming max packet size for 1/DDC_1
> [WARNING] [RFNOC] Assuming max packet size for 1/DDC_0
> Traceback (most recent call last):
>   File "/opt/gnuradio/rfnoc/src/gr-ettus/examples/rfnoc/rfnoc_fosphor.py",
> line 644, in <module>
>     main()
>   File "/opt/gnuradio/rfnoc/src/gr-ettus/examples/rfnoc/rfnoc_fosphor.py",
> line 632, in main
>     tb = top_block_cls()
>   File "/opt/gnuradio/rfnoc/src/gr-ettus/examples/rfnoc/rfnoc_fosphor.py",
> line 475, in __init__
>     self.device3.connect(self.uhd_rfnoc_streamer_fft_0_0_0.get_block_id(),
> 0, self.uhd_rfnoc_streamer_fosphor_1.get_block_id(), 0)
>   File
> "/opt/gnuradio/rfnoc/lib64/python2.7/site-packages/ettus/ettus_swig.py",
> line 1264, in connect
>     return _ettus_swig.device3_sptr_connect(self, *args)
> RuntimeError: RuntimeError: On node 1/fosphor_1, input port 0 is already
> connected.
>
> >>> Done
>
> That error at the end is usually what you see when you try to use a single
> block twice without setting up the block select value.  I have checked
> things about 50 times, and I have everything setup right as device 1 and 2,
> and the blocks (I started with a working flowgraph for non TwinRX X310s),
> but I keep getting that error.
>
> If feels like there is a UHD issue that when it is trying to setup which
> block goes with which device, it thinks that there is only one device....
>
>
> ------------------------------
> *From:* Rob Kossler <rkoss...@nd.edu>
> *Sent:* Friday, February 1, 2019 1:14 PM
> *To:* Jason Matusiak
> *Cc:* Ettus Mail List
> *Subject:* Re: [USRP-users] two X310s in one RFNoC flowgraph
>
> How is it failing?
>
> On Fri, Feb 1, 2019 at 1:11 PM Jason Matusiak <
> ja...@gardettoengineering.com> wrote:
>
> Yep, works fine.  When I am doing it in companion, it also reports info on
> both boxes while setting it up, but it feels like it only tries to talk to
> the first one it sees.
>
> ------------------------------
> *From:* Rob Kossler <rkoss...@nd.edu>
> *Sent:* Friday, February 1, 2019 1:08 PM
> *To:* Jason Matusiak
> *Cc:* Ettus Mail List
> *Subject:* Re: [USRP-users] two X310s in one RFNoC flowgraph
>
> Perhaps run uhd_usrp_probe with
> --args="addr0=192.168.30.2,addr1=192.168.40.2" and make sure that it is
> happy and shows you all of the blocks.
> Rob
>
> On Fri, Feb 1, 2019 at 12:17 PM Jason Matusiak <
> ja...@gardettoengineering.com> wrote:
>
> Upon further review, even though this worked, it doesn't seem to work for
> dual X310s with TwinRXs in it.  Anyone have any multi-usrp advice with that
> (since I pretty much no experience with TwinRX)?  I figure there might be a
> clue that there could help me with the rfnoc side of things.
>
>
> ------------------------------
> *From:* Jason Matusiak
> *Sent:* Friday, February 1, 2019 9:43 AM
> *To:* Rob Kossler
> *Cc:* Ettus Mail List
> *Subject:* Re: [USRP-users] two X310s in one RFNoC flowgraph
>
>
> Rob,
>
>
> I just figured it out (I found lots of people asking the question, but no
> answers, so hopefully this can help someone else).
>
>
> 1st - Set the "device select" option to 0 and 1 for the different X310s
> (usually you leave it at -1, but change the block select, but here we need
> to mod it).
>
> 2nd - you need a single Device3 like usual
>
> 3rd - under the Device Arguments block, add in your two IP addresses using
> the key of addr0 and addr1 like this: "addr0=192.168.30.2,
> addr1=192.168.40.2" (I tried it both with and without the quotes and it
> works fine either way),
>
>
> Now, Device 0 will get associated with addr0, and device 1 will get
> associates with addr1.
>
>
> I hope that makes sense and helps someone.
>
> ------------------------------
> *From:* Rob Kossler <rkoss...@nd.edu>
> *Sent:* Friday, February 1, 2019 9:23 AM
> *To:* Jason Matusiak
> *Cc:* Ettus Mail List
> *Subject:* Re: [USRP-users] two X310s in one RFNoC flowgraph
>
> Hi Jason,
> Given that under the hood, the stock multi_usrp (along with legacy_compat)
> implements an RFNoC graph, it must be possible.  I have run multiple X310s
> with the stock multi_usrp.  I have looked at legacy_compat pretty
> thoroughly and it keeps track of blocks as a function of device number
> (motherboard).  If I had a 2nd X310 handy, I would try it with my own
> non-stock multi_usrp object, but I don't - sorry.
> Rob
>
> On Fri, Feb 1, 2019 at 8:30 AM Jason Matusiak via USRP-users <
> usrp-users@lists.ettus.com> wrote:
>
> Is it possible to have a single flowgraph that has 2 X310s running RFNoC
> in it?  I can't seem to figure out a way to make it work, though I think
> there must be a way.  Both streams would be streaming to the same host
> machine for processing.
>
>
> Thanks.
> _______________________________________________
> USRP-users mailing list
> USRP-users@lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>
>
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to