Dear Rob,

In the end, I upgraded the OS version with Ubuntu 22.04 and UHD to version
4.5.0. Although I get overflows I no longer get the error I had before.

I appreciate your help.

Regards,
Anabel

El mié, 20 dic 2023 a las 15:55, Rob Kossler (<rkoss...@nd.edu>) escribió:

> I am not certain, but I believe that the benchmark_rate example in UHD
> 3.12 does not support "sync-ing" of multiple devices.  The recent versions
> of benchmark_rate do support this.  In any case, it is not difficult to add
> if you want (configuring all devices to use external Ref/PPS and then
> resetting the clocks for all devices at a common PPS). The "sequence"
> errors below seem consistent with this hypothesis that the devices are not
> sync-ed.
>
> So, it seems that you do not have "performance issues" if you are able to
> run 4x100 MS/s in the single device case.
>
> In your original email, you mentioned that you were running
> "rx_samples_to_file".  Maybe you could try changing the file to "/dev/null"
> (I think that is right) in order to simply "throw away" the received
> samples.  Or, you could just modify the source code to skip the file
> writing. This might let you know if the file writing is causing havoc.
> Rob
>
> On Wed, Dec 20, 2023 at 6:41 AM Anabel Almodovar <
> anabel.almodo...@gmail.com> wrote:
>
>> When I run the benchmark_rate sometimes work, sometimes no. With 4
>> channels there is no problem.  This is one of the error:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *rs3_lab@RS3-lab:~/workarea-uhd/uhd/host/examples/build$ sudo
>> ./benchmark_rate
>> --args="addr0=192.168.60.2,second_addr0=192.168.50.2,addr1=192.168.40.2,second_addr1=192.168.30.2,recv_buff_size=900000000"
>> --rx_subdev="A:0 A:1 B:0 B:1" --rx_rate 100e6 --ref="external"
>> --pps="external" --channels="0,1,2,3,4,5,6,7"[INFO] [UHD] linux; GNU C++
>> version 5.4.0 20160609; Boost_105800;
>> UHD_3.12.0.HEAD-0-gec786351[00:00:00.000016] Creating the usrp device with:
>> addr0=192.168.60.2,second_addr0=192.168.50.2,addr1=192.168.40.2,second_addr1=192.168.30.2,recv_buff_size=900000000...[INFO]
>> [X300] X300 initialization sequence...[INFO] [X300] Maximum frame size:
>> 8000 bytes.[INFO] [X300] Maximum frame size: 8000 bytes.[INFO] [X300]
>> Maximum frame size: 8000 bytes.[INFO] [X300] Maximum frame size: 8000
>> bytes.[INFO] [X300] Radio 1x clock: 200 MHz[INFO] [X300] Radio 1x clock:
>> 200 MHz[INFO] [0/DmaFIFO_0] Initializing block control (NOC ID:
>> 0xF1F0D00000000000)[INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1292
>> MB/s)[INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1308 MB/s)[INFO]
>> [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000000001)[INFO]
>> [0/Radio_1] Initializing block control (NOC ID: 0x12AD100000000001)[INFO]
>> [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000000)[INFO]
>> [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000000)[INFO]
>> [0/DUC_0] Initializing block control (NOC ID: 0xD0C0000000000000)[INFO]
>> [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000000)[WARNING]
>> [X300] Cannot update master clock rate! X300 Series does not allow changing
>> the clock rate during runtime.[INFO] [GPS] No GPSDO found[INFO]
>> [1/DmaFIFO_0] Initializing block control (NOC ID: 0xF1F0D00000000000)[INFO]
>> [1/DmaFIFO_0] BIST passed (Throughput: 1316 MB/s)[INFO] [1/DmaFIFO_0] BIST
>> passed (Throughput: 1315 MB/s)[INFO] [1/Radio_0] Initializing block control
>> (NOC ID: 0x12AD100000000001)[INFO] [1/Radio_1] Initializing block control
>> (NOC ID: 0x12AD100000000001)[INFO] [1/DDC_0] Initializing block control
>> (NOC ID: 0xDDC0000000000000)[INFO] [1/DDC_1] Initializing block control
>> (NOC ID: 0xDDC0000000000000)[INFO] [1/DUC_0] Initializing block control
>> (NOC ID: 0xD0C0000000000000)[INFO] [1/DUC_1] Initializing block control
>> (NOC ID: 0xD0C0000000000000)[WARNING] [X300] Cannot update master clock
>> rate! X300 Series does not allow changing the clock rate during
>> runtime.[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 (0xffff) - 0
>> TX Channel: 1    TX DSP: 0    TX Dboard: B    TX Subdev: Unknown (0xffff) -
>> 0  TX Channel: 2    TX DSP: 0    TX Dboard: A    TX Subdev: Unknown
>> (0xffff) - 0  TX Channel: 3    TX DSP: 0    TX Dboard: B    TX Subdev:
>> Unknown (0xffff) - 0Now confirming lock on clock
>> signals...[00:00:04.509398] Setting device timestamp to 0...[INFO]
>> [MULTI_USRP]     1) catch time transition at pps edge[INFO] [MULTI_USRP]
>>   2) set times next pps (synchronously)[00:00:06.357833] Testing receive
>> rate 100.000000 Msps on 8 channelsD[00:00:06.408574] Detected Rx sequence
>> error.D[00:00:06.427168] Detected Rx sequence error.[00:00:06.532780]
>> Receiver error: ERROR_CODE_TIMEOUT, continuing...[00:00:06.632926] Receiver
>> error: ERROR_CODE_TIMEOUT, continuing...[00:00:06.733147] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:06.833421] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:06.933685] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:07.033952] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:07.134184] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:07.234537] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:07.334828] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:07.435189] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:07.535456] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:07.635749] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[ERROR] [X300] 192.168.40.2
>> <http://192.168.40.2>: x300 fw communication failure #1EnvironmentError:
>> IOError: x300 fw poke32 - reply timed out[00:00:07.736035] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:07.836326] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:07.936631] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:08.036924] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:08.137192] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:08.237608] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:08.337885] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:08.438185] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:08.538479] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:08.638731] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[ERROR] [X300] 192.168.40.2
>> <http://192.168.40.2>: x300 fw communication failure #2EnvironmentError:
>> IOError: x300 fw poke32 - reply timed out[00:00:08.738960] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:08.839209] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:08.939471] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:09.039712] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:09.139951] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:09.240207] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:09.340462] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:09.440678] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:09.540942] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:09.641176] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[ERROR] [X300] 192.168.40.2
>> <http://192.168.40.2>: x300 fw communication failure #3EnvironmentError:
>> IOError: x300 fw poke32 - reply timed out[ERROR] [UHD] An unexpected
>> exception was caught in a task loop.The task loop will now exit, things may
>> not work.EnvironmentError: IOError: 192.168.40.2 <http://192.168.40.2>:
>> x300 fw communication failure #3EnvironmentError: IOError: x300 fw poke32 -
>> reply timed out[00:00:09.741400] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:09.841666] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[ERROR] [STREAMER] The receive packet handler failed to
>> time-align packets. 1002 received packets were processed by the handler.
>> However, a timestamp match could not be determined.[00:00:11.039474]
>> Timestamp after overrun recovery ahead of error timestamp! Unable to
>> calculate number of dropped samples.(Delta: -14354204
>> ticks)[D00:00:11.039576] Detected Rx sequence error.O[00:00:11.282342]
>> Receiver error: ERROR_CODE_TIMEOUT, continuing...D[00:00:11.282549]
>> Detected Rx sequence error.O[00:00:11.533164] Receiver error:
>> ERROR_CODE_TIMEOUT, continuing...[00:00:11.533285] Detected Rx sequence
>> error.DO[00:00:11.777357] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:11.777444] Detected Rx sequence
>> error.DO[00:00:12.024195] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:12.024298D] Detected Rx sequence
>> error.OO[00:00:12.352749] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:12.452949] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:12.553142] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:12.653400] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:12.753649] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:12.853960] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:12.954233] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:13.054580] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:13.154806] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:13.255107] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:13.355408] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:13.455681] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:13.555943] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:13.656214] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:13.756477] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:13.856742] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...O[00:00:14.813040] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...D[00:00:14.813167] Detected Rx sequence
>> error.O[00:00:15.039704] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...D[00:00:15.039807] Detected Rx sequence
>> error.O[00:00:15.295388] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:15.395547] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:15.495668] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:15.595768] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:15.695879] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:15.795982] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:15.896079] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:15.996190] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:16.096293] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:16.196395] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:16.296500] Receiver error: ERROR_CODE_TIMEOUT,
>> continuing...[00:00:17.096016] Benchmark complete.Benchmark rate summary:
>> Num received samples:     14802336  Num dropped samples:      31269466  Num
>> overruns detected:    9  Num transmitted samples:  0  Num sequence errors
>> (Tx): 0  Num sequence errors (Rx): 9  Num underruns detected:   0  Num late
>> commands:        0  Num timeouts (Tx):        0  Num timeouts (Rx):
>>  67Done!*
>>
>> And this is other:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *rs3_lab@RS3-lab:~/workarea-uhd/uhd/host/examples/build$ sudo
>> ./benchmark_rate
>> --args="addr0=192.168.60.2,second_addr0=192.168.50.2,addr1=192.168.40.2,second_addr1=192.168.30.2,recv_buff_size=900000000"
>> --rx_subdev="A:0 A:1 B:0 B:1" --rx_rate 100e6 --ref="external"
>> --pps="external" --channels="0,1,2,3,4,5,6,7"[INFO] [UHD] linux; GNU C++
>> version 5.4.0 20160609; Boost_105800;
>> UHD_3.12.0.HEAD-0-gec786351[00:00:00.000014] Creating the usrp device with:
>> addr0=192.168.60.2,second_addr0=192.168.50.2,addr1=192.168.40.2,second_addr1=192.168.30.2,recv_buff_size=900000000...[INFO]
>> [X300] X300 initialization sequence...[INFO] [X300] Maximum frame size:
>> 8000 bytes.[INFO] [X300] Maximum frame size: 8000 bytes.[INFO] [X300]
>> Maximum frame size: 8000 bytes.[INFO] [X300] Maximum frame size: 8000
>> bytes.[INFO] [X300] Radio 1x clock: 200 MHz[INFO] [0/DmaFIFO_0]
>> Initializing block control (NOC ID: 0xF1F0D00000000000)[INFO] [X300] Radio
>> 1x clock: 200 MHz[INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1317
>> MB/s)[INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1312 MB/s)[INFO]
>> [1/DmaFIFO_0] Initializing block control (NOC ID: 0xF1F0D00000000000)[INFO]
>> [1/DmaFIFO_0] BIST passed (Throughput: 1319 MB/s)[INFO] [1/DmaFIFO_0] BIST
>> passed (Throughput: 1301 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/DUC_0] Initializing block control
>> (NOC ID: 0xD0C0000000000000)[INFO] [1/DUC_0] Initializing block control
>> (NOC ID: 0xD0C0000000000000)[INFO] [0/DUC_1] Initializing block control
>> (NOC ID: 0xD0C0000000000000)[INFO] [1/DUC_1] Initializing block control
>> (NOC ID: 0xD0C0000000000000)[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] [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 (0xffff) - 0  TX Channel: 1    TX DSP: 0    TX Dboard: B
>> TX Subdev: Unknown (0xffff) - 0  TX Channel: 2    TX DSP: 0    TX Dboard:
>> A    TX Subdev: Unknown (0xffff) - 0  TX Channel: 3    TX DSP: 0    TX
>> Dboard: B    TX Subdev: Unknown (0xffff) - 0Now confirming lock on clock
>> signals...[00:00:03.698257] Setting device timestamp to 0...[INFO]
>> [MULTI_USRP]     1) catch time transition at pps edge[INFO] [MULTI_USRP]
>>   2) set times next pps (synchronously)[00:00:04.914946] Testing receive
>> rate 100.000000 Msps on 8 channelsD[00:00:04.985150] Detected Rx sequence
>> error.D[00:00:04.985335] Detected Rx sequence error.D[00:00:04.985416]
>> Detected Rx sequence error.D[00:00:04.985481] Detected Rx sequence
>> error.D[00:00:04.985547] Detected Rx sequence error.D[00:00:04.985627]
>> Detected Rx sequence error.D[00:00:04.985698] Detected Rx sequence
>> error.[00:00:04.985783] Detected Rx sequence error.DD[00:00:04.985837]
>> Detected Rx sequence error.D[00:00:04.985890] Detected Rx sequence
>> error.D[00:00:04.985936] Detected Rx sequence error.D[00:00:04.985990]
>> Detected Rx sequence error.D[00:00:04.986057] Detected Rx sequence
>> error.D[00:00:04.986136] Detected Rx sequence error.[00:00:04.986233]
>> Detected Rx sequence error.D[00:00:04.986316] Timestamp after overrun
>> recovery ahead of error timestamp! Unable to calculate number of dropped
>> samples.(Delta: -9980 ticks)[D00:00:04.986366] Detected Rx sequence
>> error.[00:00:04.986424] Detected Rx sequence error.D[00:00:04.986491]
>> Detected Rx sequence error.D[00:00:04.986595] Detected Rx sequence
>> error.DD[00:00:04.986838] Detected Rx sequence error.[00:00:04.987167]
>> Detected Rx sequence error.D[00:00:04.987334] Detected Rx sequence
>> error.DD[00:00:04.987400] Detected Rx sequence error.D[00:00:04.992004]
>> Detected Rx sequence error.[00:00:04.992086] Detected Rx sequence
>> error.DD[00:00:04.992132] Detected Rx sequence error.D[00:00:04.992183]
>> Detected Rx sequence error.D[00:00:04.992231] Detected Rx sequence
>> error.D[00:00:04.992279] Detected Rx sequence error.[00:00:04.992335]
>> Detected Rx sequence error.D[00:00:04.992392] Detected Rx sequence
>> error.D[00:00:04.992453] Detected Rx sequence error.D[00:00:04.992506]
>> Detected Rx sequence error.DD[00:00:04.992545] Detected Rx sequence
>> error.[00:00:04.992592] Detected Rx sequence error.D[00:00:04.992657]
>> Detected Rx sequence error.DD[00:00:04.992711] Detected Rx sequence
>> error.[00:00:04.992763] Detected Rx sequence error.D[00:00:04.992834D]
>> Detected Rx sequence error.[00:00:04.992889] Detected Rx sequence
>> error.D[00:00:04.992947] Detected Rx sequence error.D[00:00:04.993006]
>> Detected Rx sequence error.D[00:00:04.993071] Detected Rx sequence
>> error.DD[00:00:04.993121] Detected Rx sequence error.[00:00:04.993173]
>> Detected Rx sequence error.DD[00:00:04.993213] Detected Rx sequence
>> error.[00:00:04.993254D] Detected Rx sequence error.[00:00:04.993310]
>> Detected Rx sequence error.D[00:00:04.993366] Detected Rx sequence
>> error.DD[00:00:04.993411] Detected Rx sequence error.[00:00:04.993465]
>> Detected Rx sequence error.D[00:00:04.993521] Detected Rx sequence
>> error.DD[00:00:04.993567] Detected Rx sequence error.D[00:00:04.993611]
>> Detected Rx sequence error.[00:00:04.993663D] Detected Rx sequence
>> error.[00:00:04.993713] Detected Rx sequence error.DD[00:00:04.993752]
>> Detected Rx sequence error.[00:00:04.993803] Detected Rx sequence
>> error.D[00:00:04.993859] Detected Rx sequence error.D[00:00:04.993919D]
>> Detected Rx sequence error.[00:00:04.993977] Detected Rx sequence
>> error.D[00:00:04.994022] Detected Rx sequence error.D[00:00:04.994070D]
>> Detected Rx sequence error.[00:00:04.994122] Detected Rx sequence
>> error.D[00:00:04.994168] Detected Rx sequence error.DD[00:00:04.994218]
>> Detected Rx sequence error.[00:00:04.994250] Detected Rx sequence
>> error.D[00:00:08.051291] Detected Rx sequence error.D[00:00:08.051352]
>> Detected Rx sequence error.D[00:00:08.051403] Detected Rx sequence
>> error.D[00:00:08.051453] Detected Rx sequence error.DD[00:00:09.406237]
>> Detected Rx sequence error.[00:00:09.406340] Detected Rx sequence
>> error.D[00:00:09.406379] Detected Rx sequence error.D[00:00:09.406422]
>> Detected Rx sequence error.DD[00:00:09.406477] Detected Rx sequence
>> error.[00:00:09.406525] Detected Rx sequence error.D[00:00:09.406541]
>> Detected Rx sequence error.D[00:00:09.406577] Detected Rx sequence
>> error.D[00:00:09.406623] Timestamp after overrun recovery ahead of error
>> timestamp! Unable to calculate number of dropped samples.(Delta: -1996
>> ticks)[00:00:15.715955] Benchmark complete.Benchmark rate summary:  Num
>> received samples:     7958249432  Num dropped samples:      49903  Num
>> overruns detected:    0  Num transmitted samples:  0  Num sequence errors
>> (Tx): 0  Num sequence errors (Rx): 79  Num underruns detected:   0  Num
>> late commands:        0  Num timeouts (Tx):        0  Num timeouts (Rx):
>>      0Done!*
>>
>>
>>
>> El lun, 18 dic 2023 a las 19:10, Rob Kossler (<rkoss...@nd.edu>)
>> escribió:
>>
>>> How about if you use an unmodified "benchmark_rate"?
>>>
>>> On Mon, Dec 18, 2023 at 11:43 AM Anabel Almodovar <
>>> anabel.almodo...@gmail.com> wrote:
>>>
>>>> Even with a single card I still get the same error.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> *Creating the usrp device with:
>>>> addr0=192.168.60.2,second_addr0=192.168.50.2,recv_buff_size=900000000...Creating
>>>> the subdevice with: A:0 A:1 B:0 B:1...Using Device: Single USRP:  Device:
>>>> X-Series Device  Mboard 0: 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  TX Channel: 0    TX DSP: 0    TX Dboard: A    TX
>>>> Subdev: Unknown (0xffff) - 0  TX Channel: 1    TX DSP: 0    TX Dboard: B
>>>> TX Subdev: Unknown (0xffff) - 0Número de canales detectados: 4Número de
>>>> tarjetas detectadas: 1Actual RX Rate: 50.000000 Msps...Actual Acquisition
>>>> Time to: 0.000000 Seconds.Actual RX Freq: 800.000000 MHz...Actual RX Gain:
>>>> 5.000000 dB...Actual RX Bandwidth: 50.000000 MHz...Setting LO
>>>> source...[INFO] [MULTI_USRP]     1) catch time transition at pps edge[INFO]
>>>> [MULTI_USRP]     2) set times next pps (synchronously)Press Ctrl + C to
>>>> stop streaming...STAR SAMPLING ...D[ERROR] [STREAMER] The receive packet
>>>> handler failed to time-align packets. 1002 received packets were processed
>>>> by the handler. However, a timestamp match could not be determined.D[ERROR]
>>>> [STREAMER] The receive packet handler failed to time-align packets. 1002
>>>> received packets were processed by the handler. However, a timestamp match
>>>> could not be determined.^CReceived 199995208 samples in 6.703929
>>>> seconds29.8325 MspsDone!*
>>>>
>>>>
>>>> El lun, 18 dic 2023 a las 17:13, Rob Kossler (<rkoss...@nd.edu>)
>>>> escribió:
>>>>
>>>>> Several comments:
>>>>>
>>>>>    - It seems like multiple things are going on.  You mentioned the
>>>>>    original "failed to time align" error and below you mentioned 'O' and 
>>>>> 'D'.
>>>>>       - The time-align error I did not expect had anything to do with
>>>>>       "performance". This seemed to me that the first packet arriving 
>>>>> from device
>>>>>       1 had a different time stamp than the first packet arriving from 
>>>>> device 2.
>>>>>       Now, I'm not so sure
>>>>>       - But, the 'O' and 'D' are often related to "performance".
>>>>>       Overflow 'O' occurs when the 'Radio' block has A/D samples that it 
>>>>> needs to
>>>>>       put in a FIFO but the FIFO is full because it is not being emptied 
>>>>> fast
>>>>>       enough (presumably by the host PC).  A dropped packet (or sequence 
>>>>> error)
>>>>>       'D' occurs when the host PC detects that the incoming packets are 
>>>>> not in
>>>>>       sequential order. This can occur if the host PC Ethernet handling 
>>>>> becomes
>>>>>       overwhelmed and simply discards a set of incoming packets for a time
>>>>>       period. Both 'O' and 'D' can imply that the host PC is not keeping 
>>>>> up with
>>>>>       incoming data
>>>>>    - In any case, you may want to simplify the problem by dropping
>>>>>    from two devices to one device.  See if you can eliminate some or all 
>>>>> of
>>>>>    these problems when using only 4 channels.
>>>>>    - If you drop to one device, you can use benchmark_rate to test
>>>>>    performance.  If you do not use "second_addr", you should be able to 
>>>>> get
>>>>>    4x50 MS/s.  If you use "second_addr", you should be able to get 4x100 
>>>>> MS/s.
>>>>>    - Regarding your needed changes to "rx_samples_to_file", I guess I
>>>>>    was thinking about the latest version which supports multiple channels.
>>>>>    Perhaps UHD 3.12 has a version of this example that only supports a 
>>>>> single
>>>>>    channel.  You could compare your version to the latest version (say, 
>>>>> UHD
>>>>>    4.6) to see the improvements to this example.
>>>>>
>>>>>
>>>>> On Mon, Dec 18, 2023 at 7:44 AM Anabel Almodovar <
>>>>> anabel.almodo...@gmail.com> wrote:
>>>>>
>>>>>> Hi Rob,
>>>>>>
>>>>>> Thanks for the suggestions. I have tried deleting the LO sharing, and
>>>>>> nothing changes. Then removing the second addr, and that leads me to get
>>>>>> 'Ds' in addition to the error already mentioned, as it is not able to
>>>>>> handle that much information. Although I don't quite understand the
>>>>>> difference between 'O' and 'D'.
>>>>>>
>>>>>> From what I understand the program is set up for a single channel, so
>>>>>> I need to modify it to get more than one.
>>>>>>
>>>>>> Thank you in advance.
>>>>>>
>>>>>> Regards,
>>>>>> Anabel
>>>>>>
>>>>>> El vie, 15 dic 2023 a las 15:39, Rob Kossler (<rkoss...@nd.edu>)
>>>>>> escribió:
>>>>>>
>>>>>>> Hmmm. I'm not sure. Here are a few comments:
>>>>>>>
>>>>>>>    - Try running without "second_addr".  I realize that you will
>>>>>>>    need it for full rate (4 x 100MS/s for each X310), but you could run 
>>>>>>> at 50
>>>>>>>    MS/s without second_addr
>>>>>>>    - Try running without shared LO. I don't think you would need to
>>>>>>>    physically change any sharing cables.
>>>>>>>    - I am curious why you needed to modify the streamer, pointer
>>>>>>>    buffer and file writing.  I would expect that this would scale with 
>>>>>>> the
>>>>>>>    number of channels such that you didn't need to modify any code in 
>>>>>>> this area
>>>>>>>    - If you were using a more recent UHD, I would recommend
>>>>>>>    switching to the example benchmark_rate which natively supports 
>>>>>>> external
>>>>>>>    PPS and multiple devices.  I noticed that even the most
>>>>>>>    recent rx_samples_to_file does not support external PPS (without 
>>>>>>> modifying
>>>>>>>    the code)
>>>>>>>    - I know you mentioned you were unable to upgrade because of
>>>>>>>    compatibility constraints.  But, even if you cannot upgrade the OS, 
>>>>>>> would
>>>>>>>    you be able to install a new UHD - perhaps in a local folder that 
>>>>>>> did not
>>>>>>>    interfere with the system-wide UHD 3.12 installation.  I typically 
>>>>>>> have
>>>>>>>    multiple UHD versions on my system and switch among them by 
>>>>>>> "sourcing" a
>>>>>>>    given setup file as needed.
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Dec 15, 2023 at 12:52 AM Anabel Almodovar <
>>>>>>> anabel.almodo...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Dear Rob,
>>>>>>>>
>>>>>>>> Yes, I use an external clock configuration.
>>>>>>>>
>>>>>>>> *std::this_thread::sleep_for(
>>>>>>>> std::chrono::milliseconds(int64_t(1000 * setup_time) );*
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> *usrp->set_clock_source("external",
>>>>>>>> uhd::usrp::multi_usrp::ALL_MBOARDS);    
>>>>>>>> usrp->set_time_source("external",
>>>>>>>> uhd::usrp::multi_usrp::ALL_MBOARDS);usrp->set_time_unknown_pps(uhd::time_spec_t(0.0));std::this_thread::sleep_for(std::chrono::seconds(1));*
>>>>>>>>
>>>>>>>> I have only modified the code to get 8 channels and LO sharing. I
>>>>>>>> want to get a continuous acquisition setup without losing samples. But 
>>>>>>>> I am
>>>>>>>> starting with something basic at the moment. Any suggestions are 
>>>>>>>> welcome.
>>>>>>>> So I've modified the streamer, the pointer buffer, and added writing 
>>>>>>>> files.
>>>>>>>>
>>>>>>>> my line is
>>>>>>>> *$sudo ./rx_samples_to_file_v1
>>>>>>>> --args="addr0=192.168.60.2,second_addr0=192.168.50.2,addr1=192.168.40.2,second_addr1=192.168.30.2,recv_buff_size=900000000"
>>>>>>>> --subdev="A:0 A:1 B:0 B:1" --channel="0,1,2,3,4,5,6,7" --freq 800e6 
>>>>>>>> --rate
>>>>>>>> 25e6 --bw 25e6 --gain 70 *
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>>
>>>>>>>> *Anabel*
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> El jue, 14 dic 2023 a las 18:25, Rob Kossler (<rkoss...@nd.edu>)
>>>>>>>> escribió:
>>>>>>>>
>>>>>>>>> Hi Anabel,
>>>>>>>>> In my opinion, the error you are experiencing has nothing to do
>>>>>>>>> with streaming performance settings (such as "performance" governor,
>>>>>>>>> network descriptors, MTU size, etc). The issue seems to be that the 
>>>>>>>>> two
>>>>>>>>> X310 devices do not have synchronized clocks. In addition to the 
>>>>>>>>> physical
>>>>>>>>> synchronization using OctoClock, you must also configure each device 
>>>>>>>>> to use
>>>>>>>>> external synchronization and you must tell each device to reset its 
>>>>>>>>> FPGA
>>>>>>>>> clock count at a common PPS. The typical sequence is: (1) wait for a 
>>>>>>>>> PPS to
>>>>>>>>> occur (by querying either device), (2) tell each device to reset its 
>>>>>>>>> FPGA
>>>>>>>>> clock at the subsequent PPS (this step must complete before the next 
>>>>>>>>> PPS
>>>>>>>>> arrives).
>>>>>>>>>
>>>>>>>>> You mentioned that you are using rx_samples_to_file. Did you
>>>>>>>>> modify it in any way?  What is your exact command line with all 
>>>>>>>>> parameters?
>>>>>>>>> Rob
>>>>>>>>>
>>>>>>>>> On Thu, Dec 14, 2023 at 10:29 AM Anabel Almodovar <
>>>>>>>>> anabel.almodo...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Dear Rob
>>>>>>>>>>
>>>>>>>>>> Thank you for your answer.
>>>>>>>>>> I make use of the CDA-2990 octoclock as a source of
>>>>>>>>>> synchronization between both USRPs, in addition to local oscillator
>>>>>>>>>> sharing. I use dual 10GigEth connections and a MTU of 9000 to 
>>>>>>>>>> connect the
>>>>>>>>>> USRPs to the PC.
>>>>>>>>>>
>>>>>>>>>> Due to various compatibility issues I am unable to upgrade the
>>>>>>>>>> system.
>>>>>>>>>>
>>>>>>>>>> When I work with a sample rate of 10MSps I don't get problems but
>>>>>>>>>> when I increase to 25MSps I start to get the error. I need them 
>>>>>>>>>> working
>>>>>>>>>> with 100MSps. I have tried changing the CPU governor to 
>>>>>>>>>> "performance" to
>>>>>>>>>> get the maximum working frequency (*sudo cpupower frequency-set
>>>>>>>>>> --governor performance*), as well as changing the number of
>>>>>>>>>> network interface descriptors to maximum (*sudo ethtool -G
>>>>>>>>>> <interface> tx <max> rx <max>*), or increasing the dirty memory
>>>>>>>>>> buffer (*sudo sysctl -w vm.dirty_ratio=80; sudo sysctl -w
>>>>>>>>>> vm.dirty_background_ratio=50*), but I still get the same problem.
>>>>>>>>>>
>>>>>>>>>> Regards,
>>>>>>>>>> Anabel
>>>>>>>>>>
>>>>>>>>>> El jue, 14 dic 2023 a las 15:38, Rob Kossler (<rkoss...@nd.edu>)
>>>>>>>>>> escribió:
>>>>>>>>>>
>>>>>>>>>>> Hi Anabel,
>>>>>>>>>>> How are you sync-ing the clocks on the two units? Do you have an
>>>>>>>>>>> external PPS source and are you configuring both devices to use this
>>>>>>>>>>> external source?
>>>>>>>>>>>
>>>>>>>>>>> Finally, do you have the ability to upgrade your OS and your UHD
>>>>>>>>>>> versions? There aren't many user's that are using UHD 3.12 so if 
>>>>>>>>>>> you have
>>>>>>>>>>> issues, it will be hard to get support.
>>>>>>>>>>> Rob
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Dec 14, 2023 at 5:20 AM Anabel Almodovar <
>>>>>>>>>>> anabel.almodo...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Dear all,
>>>>>>>>>>>>
>>>>>>>>>>>> I am trying to make an acquisition with two X310 equipped with
>>>>>>>>>>>> two TwinRx. I am using Ubuntu 16.04 LTS 64-bit and UHD 3.12. My PC 
>>>>>>>>>>>> contains
>>>>>>>>>>>> 128GB RAM and an Intel® Xeon(R) Silver 4114 CPU @ 2.20GHz × 40 and 
>>>>>>>>>>>> a 4TB
>>>>>>>>>>>> SSD. I have modified the example rx_samples_to_file.cpp code to 
>>>>>>>>>>>> get 8
>>>>>>>>>>>> channels and I get the following error:
>>>>>>>>>>>>
>>>>>>>>>>>> *D*
>>>>>>>>>>>> *[ERROR] [STREAMER] The receive packet handler failed to
>>>>>>>>>>>> time-align packets. 1002 received packets were processed by the 
>>>>>>>>>>>> handler.
>>>>>>>>>>>> However, a timestamp match could not be determined.*
>>>>>>>>>>>> *Timeout while streaming*
>>>>>>>>>>>>
>>>>>>>>>>>> *[ERROR] [X300] 192.168.60.2 <http://192.168.60.2>: x300 fw
>>>>>>>>>>>> communication failure #1*
>>>>>>>>>>>> *EnvironmentError: IOError: x300 fw poke32 - reply timed out*
>>>>>>>>>>>> *[ERROR] [UHD] An unexpected exception was caught in a task
>>>>>>>>>>>> loop.The task loop will now exit, things may not 
>>>>>>>>>>>> work.AssertionError:
>>>>>>>>>>>> reply.sequence == request.sequence*
>>>>>>>>>>>> *  in virtual void
>>>>>>>>>>>> x300_ctrl_iface_enet::__poke32(uhd::wb_iface::wb_addr_type, 
>>>>>>>>>>>> uint32_t)*
>>>>>>>>>>>> *  at
>>>>>>>>>>>> /home/rs3_lab/workarea-uhd/uhd/host/lib/usrp/x300/x300_fw_ctrl.cpp:135*
>>>>>>>>>>>>
>>>>>>>>>>>> I don't know how to solve the Timeout problem, I have tried to
>>>>>>>>>>>> start the acquisition 1.1 sg in time. But it didn't work.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> *        stream_cmd.stream_now = false;
>>>>>>>>>>>> stream_cmd.time_spec = usrp->get_time_last_pps(0)+1.1;*
>>>>>>>>>>>>
>>>>>>>>>>>> What is the problem and how can I fix it?
>>>>>>>>>>>>
>>>>>>>>>>>> Regards,
>>>>>>>>>>>> Anabel
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> USRP-users mailing list -- usrp-users@lists.ettus.com
>>>>>>>>>>>> To unsubscribe send an email to
>>>>>>>>>>>> usrp-users-le...@lists.ettus.com
>>>>>>>>>>>>
>>>>>>>>>>>
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to