diff options
author | Patrick Sisterhen <patrick.sisterhen@ni.com> | 2017-03-29 15:13:46 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2017-03-29 15:18:07 -0700 |
commit | 47672ede5034df17bdc2f314f4e3b7afa8622bda (patch) | |
tree | 0e741b59804071e7f0a7b1f8a5b1ff3953259df6 /host/lib | |
parent | 04b205d15bea5ef56d4f96446db6ec20124df9e7 (diff) | |
download | uhd-47672ede5034df17bdc2f314f4e3b7afa8622bda.tar.gz uhd-47672ede5034df17bdc2f314f4e3b7afa8622bda.tar.bz2 uhd-47672ede5034df17bdc2f314f4e3b7afa8622bda.zip |
NI-RIO: FIFO management optimizations for PCIe performance
Pre-acquiring as much buffer as possible
When acquiring during a streaming operation, acquire a minimum amount (frame size) or the amount we know is acquire-able
Adding docstrings to nirio_fifo
Making const-qualifying consistent
Diffstat (limited to 'host/lib')
-rw-r--r-- | host/lib/transport/nirio/niriok_proxy_impl_v2.cpp | 14 | ||||
-rw-r--r-- | host/lib/transport/nirio_zero_copy.cpp | 2 |
2 files changed, 9 insertions, 7 deletions
diff --git a/host/lib/transport/nirio/niriok_proxy_impl_v2.cpp b/host/lib/transport/nirio/niriok_proxy_impl_v2.cpp index f75de01e1..4e88b8a6e 100644 --- a/host/lib/transport/nirio/niriok_proxy_impl_v2.cpp +++ b/host/lib/transport/nirio/niriok_proxy_impl_v2.cpp @@ -759,14 +759,14 @@ namespace uhd { namespace niusrprio in.timeout = timeout; in.status = NiRio_Status_Success; - ioctl_status = + ioctl_status = nirio_driver_iface::rio_ioctl( - _device_handle, - IOCTL_TRANSPORT_FIFO_WAIT, - &in, - sizeof(in), - &out, - sizeof(out)); + _device_handle, + IOCTL_TRANSPORT_FIFO_WAIT, + &in, + sizeof(in), + &out, + sizeof(out)); if (nirio_status_fatal(ioctl_status)) return ioctl_status; data_pointer = reinterpret_cast<void*>(out.elements); diff --git a/host/lib/transport/nirio_zero_copy.cpp b/host/lib/transport/nirio_zero_copy.cpp index 8bec49a5f..9ed02a6dc 100644 --- a/host/lib/transport/nirio_zero_copy.cpp +++ b/host/lib/transport/nirio_zero_copy.cpp @@ -182,11 +182,13 @@ public: nirio_status_chain( _recv_fifo->initialize( (_xport_params.recv_frame_size*_xport_params.num_recv_frames)/sizeof(fifo_data_t), + _xport_params.recv_frame_size / sizeof(fifo_data_t), actual_depth, actual_size), status); nirio_status_chain( _send_fifo->initialize( (_xport_params.send_frame_size*_xport_params.num_send_frames)/sizeof(fifo_data_t), + _xport_params.send_frame_size / sizeof(fifo_data_t), actual_depth, actual_size), status); |