| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This will clear the property tree, block registry, transport managers,
and motherboard list on destruction of mpmd_impl.
|
|
|
|
|
|
|
|
|
| |
The reclaim task loop is asnychronous to the main thread which can
result in spurious reclaim call to the device after unclaim has been
called. This is especially risky if the device has already entered a
non-serviceable state after unclaim e.g. idle state.
Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
MPM has a flag that identifies component reloads as requiring to restart
the RPC server. This change honours that flag, and doesn't cause a fatal
failure when reclaims fail to ack for certain operations.
For example, running uhd_image_loader on an N310 could fail after the
FPGA was reloaded because the communication to the RPC server was
temporarily interrupted. This is not always avoidable, since the RPC
server does actually go down, and Ethernet connections might also be
lost. So, we cut our losses and accept failures in that case.
|
|
|
|
| |
Fix transport related arguments passed down the stack.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
During certain RPC calls (e.g. update_component), the MPM RPC server is
slow to respond to reclaim requests, which can causes RPC timeouts.
These changes fix those timeouts.
By setting the reclaiming timeout to twice the timeout of an RPC call,
we have some margin for error on the host side, while not affecting the
underlying claiming logic in MPM. The loop should still operate on a 5
second period, but now has more leeway during stressful conditions.
|
|
|
|
|
| |
Using new rpc client new API that ensure atomic setting of timeout on
each rpc call.
|
| |
|
| |
|
|
|
|
|
| |
We need a separate RPC connection for the claim loop such that it is not
blocked by other long executions of rpc calls.
|
|
|
|
|
| |
Reclaming interval was exec_time(claim+dump_logs)+MPMD_RECLAIM_INTERNVAL; this change will
MAX(exec_time(claim+dump_logs),MPM_RECLAIM_INTERVAL)
|
|
|
|
|
|
|
|
| |
During MPMd find routine, added a check when connecting to a CHDR
interface to make sure we're talking to the correct device.
Without this check MPMd would sometimes incorrectly mark a device as
reachable because they shared an addr (ie. 192.168.10.2 existed on
multiple devices).
|
|
|
|
|
|
|
| |
All copyright is now attributed to "Ettus Research, a National
Instruments company".
SPDX headers were also updated to latest version 3.0.
|
|
|
|
|
|
| |
- Initialization of device_addr_t from another using auto doesn't work
across compilers
- Moved MPMD_DISC_RESPONSE_PREAMBLE to mpmd_find where it belongs
|
|
|
|
|
|
|
|
|
| |
In particular, when running uhd_find_devices, this will limit the
devices to ones that can actually be reached via CHDR. There is a new
key, find_all, which allows finding all devices even those not
reachable from UHD.
Reviewed-by: Brent Stapleton <brent.stapleton@ettus.com>
|
|
|
|
|
|
| |
When trying to run init(), mpmd will first query the initialization
status of the MPM device. If it is found to be in a bad state, it will
not go forward with initialization, but instead print the error message.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Note: This doesn't add any concurrency, rather, it changes the
structure of the code to allow that. Notable changes:
- All prop tree inits in one place
- No access to containers in methods that might be run in parallel
- Split initialization and claiming in mpmd_mboard_impl, calling ctor
will no longer run the full initialization.
- Added comments to identify parallelizable spots
|
|
|
|
|
|
|
| |
Increases the host's timeout during update_component times, then resets
it to the default RPC timeout after the call is complete.
Reviewed-by: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
|
| |
Adds two device args: discovery_port and rpc_port. Both are integers
which override the respective constants.
Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
|
|
|
|
|
|
|
|
|
|
| |
By adding measure_rpc_latency, mpmd_impl will run a ping command in a
loop at initialization, and estimate average and maximum RPC command
latency. Note that the ping() RPC call only does an internal logging
call and returns its argument, so it is a very coarse approximation to
how fast RPC latency is.
Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This splits up the transport code in mpmd_impl across multiple classes
to properly leverage the request_xport/commit_xport API in MPM.
Different types of transport (UDP, liberio) use their own distinct
classes, which are generated dynamically on request.
This is a true refactoring despite the large amount of changes; there
are no functional differences.
Reviewed-By: Brent Stapleton <brent.stapleton@ettus.com>
Reviewed-By: Trung Tran <trung.tran@ettus.com>
Reviewed-By: Ashish Chaudhari <ashish.chaudhari@ettus.com>
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The RPC client will now query the MPM server for details when an error
occured.
|
|
|
|
| |
Adding skip_init to the device args makes it so rfnoc blocks, etc. are not initialized.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
- Crossbar local addr is now written during initialization of UHD
session
- Support for multiple crossbars per device (at least on UHD side)
- Crossbars are now sequentially given a unique address
|
|
|