aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorPatrick Sisterhen <patrick.sisterhen@ni.com>2017-03-29 15:13:46 -0700
committerMartin Braun <martin.braun@ettus.com>2017-03-29 15:18:07 -0700
commit47672ede5034df17bdc2f314f4e3b7afa8622bda (patch)
tree0e741b59804071e7f0a7b1f8a5b1ff3953259df6 /host/lib
parent04b205d15bea5ef56d4f96446db6ec20124df9e7 (diff)
downloaduhd-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.cpp14
-rw-r--r--host/lib/transport/nirio_zero_copy.cpp2
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);