| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
The counters that keep track of overruns, underruns, number of samples
transferred, etc., were not atomic. Thus, running benchmark_rate with
multiple threads would result in inaccurate statistics being reported at
the end of the run. This commit makes those counters atomic variables so
that they are updated properly.
|
|
|
|
|
|
|
| |
- Added support for tx_spb and rx_spb arguments
- Fixed TX thread timestamp for single channel
Signed-off-by: michael-west <michael.west@ettus.com>
|
| |
|
|
|
|
|
|
|
|
| |
The implementation was not properly configuring the stream command if
the --random flag was used. It was especially bad when multiple
channels were specified.
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit modifies the benchmark_rate example to use the operating
system's default thread priority, instead of real-time thread priority,
by default. UHD 4.0 includes a number of significant improvements to
the streaming architecture that allow for best performance to be
achieved without having to resort to elevating the process thread
priority to real-time. Internal testing shows degraded streaming
performance in common use cases (i.e. non-DPDK) when the process thread
priority is set to real-time.
It should be noted that applications which use DPDK may still experience
better performance when the process thread priority is set to real-time.
Users may continue to manually override the process thread priority
in benchmark_rate using the --priority=high command-line option. The
need to elevate the process thread priority will be application- and
deployment-dependent.
|
|
|
|
|
| |
Note: template_lvbitx.{cpp,hpp} need to be excluded from the list of
files that clang-format gets applied against.
|
|
|
|
|
|
| |
Cleans up the print out for the benchmark rate example. Removes
race condition that would cause send and receive initialization
messages to interleave to stdout.
|
|
|
|
|
|
| |
Using default values, the initial delay for tx is larger than the
default timeout of tx_streamer::send. Changing the example to always
specify a timeout in send.
|
|
|
|
|
|
|
|
| |
- Add option for high or normal thread priority with default set to high
- Add rx_delay and tx_delay options to dynamically set start delays
(default of 0.25 seconds for TX and 0.05 seconds for RX)
Signed-off-by: Michael West <michael.west@ettus.com>
|
|
|
|
|
|
|
|
|
|
| |
Improves dpdk streaming performance for benchmark_rate by elevating
thread priority of the send and recv threads. It does this
conditionally, if use_dpdk=1 was passed in through the command line
args. Admittedly, this is not a perfect solution, as it does not
account for the case when a dpdk user is utilizing a config file to
pass in that information. The scope of this fix does seem
appropriate for an example.
|
|
|
|
| |
These command line arguments control the spp values used for streaming.
|
|
|
|
|
| |
Replace with std::chrono functions instead, in our effort to reduce
Boost footprint.
|
| |
|
|
|
|
|
|
|
|
|
| |
This removes the following symbols:
- otw_type_t
- clock_config_t
- Any functions that use those symbols
- Non-standard args from examples (e.g., --total-time is deprecated in
favour of --duration)
|
|
|
|
|
|
|
| |
Remove UHD call to elevate thread priority to realtime. Setting all
threads to the same realtime priority can cause the threads to not share
access to the network interface fairly, which adversely affects
operation of the worker threads in UHD.
|
|
|
| |
Fixing accounting for INIT_DELAY in the stream duration
|
|
|
|
|
|
|
| |
Remove dead store to is_locked. The variable isn't read before
being overwritten, so the extra store is useless.
Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Applying formatting changes to all .cpp and .hpp files in the following
directories:
```
find host/examples/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find host/tests/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find host/lib/usrp/dboard/neon/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find host/lib/usrp/dboard/magnesium/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find host/lib/usrp/device3/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find host/lib/usrp/mpmd/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find host/lib/usrp/x300/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find host/utils/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
find mpm/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
```
Also formatted host/include/, except Cpp03 was used as a the language
standard instead of Cpp11.
```
sed -i 's/ Cpp11/ Cpp03/g' .clang-format
find host/include/ -iname *.hpp -o -iname *.cpp | \
xargs clang-format -i -style=file
```
Formatting style was designated by the .clang-format file.
|
|
|
|
|
|
| |
Turning off clang formatting around the program option declarations.
clang-format makes them looks bad an unreadable because it thinks the
options are function calls or something.
|
|
|
|
|
|
|
|
| |
Move the setting of the streaming start times back as late as possible.
Currently, there are memory allocations in between setting the
time_spec in the TX metadata and actually starting streaming. This will
lessen the need for an INIT_DELAY and decrease the probability of late
packets.
|
|
|
|
|
|
|
|
|
|
| |
Fix USRP2 MIMO synchronization in benchmark_rate.
When synchronizing N2XXs connected with a MIMO cable, only the master's
time needs to be set; the slave will be synchronized automatically.
Currently, calling set_time_unknown_pps will attempt to synchronize the
slave on the next PPS, which can cause problems since the MIMO cable
doesn't propogate a PPS signal.
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are cases when the first sample after an overrun has an earlier
timestamp than the timestamp of the error package. In this case,
benchmark_rate would incorrectly determine the number of dropped
samples, causing it to display a very large number.
This is not a fix of the negative offset issue, but will avoid
displaying overly pessimistic numbers dropped samples.
An error message is still displayed when this happens, which aids in
debugging this situation.
|
|
|
|
|
|
| |
The main thread sleeps while the receiver and transmitter threads are
going on. This fixes the calculated time it takes in single-channel
scenarios.
|
|
|
|
|
|
|
|
|
|
|
| |
When too many overruns, underruns, or dropped packets are detected,
benchmark_rate will now return EXIT_FAILURE. This allows to use it for
automated tests.
The thresholds are set very high by default, but can be manually tuned
by using new command line arguments:
$ benchmark_rate --overrun-threshold 0 # Fail on any number of Os
|
|
|
|
|
|
|
|
| |
- Messages are all timestamped, enables better understanding of the
output log
- Less usage of Boost
- More stats (differentiate between RX and TX timeouts and sequence
errors)
|
|
|
|
| |
All warnings reported by MSVC. Mostly related to narrowing conversions.
|
|
|
|
|
|
|
| |
All copyright is now attributed to "Ettus Research, a National
Instruments company".
SPDX headers were also updated to latest version 3.0.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
The previous version (using atomic variables) was fine, but didn't work
with all the Boost versions we currently support on the 3.9.X release
line.
This is a slightly less safe, but still sufficient example.
|
| |
| |
| |
| |
| |
| | |
problems"
This reverts commit 8930d853f3ee2ac91fc7fd6b41046ca972da3c3f.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
The previous version (using atomic variables) was fine, but didn't work
with all the Boost versions we currently support on the 3.9.X release
line.
This is a slightly less safe, but still sufficient example.
|
| |
| |
| |
| |
| |
| | |
problems"
This reverts commit 8930d853f3ee2ac91fc7fd6b41046ca972da3c3f.
|
|/ |
|
| |
|
|
|
|
|
| |
* MinGW: unused parameter warning, MSVC-specific pragma
* MSVC: bool narrowing
|
| |
|
| |
|