|
Revision tags: v24.07-rc2 |
|
| #
393ff728 |
| 20-Jun-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
drivers/net: replace intrinsic header include with rte_vect
Rather than having the SSE code in each driver include tmmintrin.h, which often does not contain all needed intrinsics, e.g. _mm_cvtsi128_
drivers/net: replace intrinsic header include with rte_vect
Rather than having the SSE code in each driver include tmmintrin.h, which often does not contain all needed intrinsics, e.g. _mm_cvtsi128_si64() for 32-bit x86 builds, we can just replace the include of ?mmintrin.h with rte_vect.h for all network drivers.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Konstantin Ananyev <konstantin.ananyev@huawei.com> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
show more ...
|
|
Revision tags: v24.07-rc1, v24.03, v24.03-rc4, v24.03-rc3, v24.03-rc2, v24.03-rc1, v23.11, v23.11-rc4, v23.11-rc3, v23.11-rc2, v23.11-rc1, v23.07, v23.07-rc4, v23.07-rc3, v23.07-rc2, v23.07-rc1, v23.03, v23.03-rc4, v23.03-rc3, v23.03-rc2, v23.03-rc1 |
|
| #
d5284f0d |
| 09-Feb-2023 |
Maxime Coquelin <maxime.coquelin@redhat.com> |
net/virtio: alloc Rx SW ring only if vectorized path
This patch only allocates the SW ring when vectorized datapath is used. It also moves the SW ring and fake mbuf in the virtnet_rx struct since th
net/virtio: alloc Rx SW ring only if vectorized path
This patch only allocates the SW ring when vectorized datapath is used. It also moves the SW ring and fake mbuf in the virtnet_rx struct since this is Rx-only.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
show more ...
|
|
Revision tags: v22.11, v22.11-rc4, v22.11-rc3, v22.11-rc2, v22.11-rc1, v22.07, v22.07-rc4, v22.07-rc3, v22.07-rc2, v22.07-rc1, v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2, v22.03-rc1, v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2, v21.11-rc1, v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2, v21.08-rc1, v21.05, v21.05-rc4, v21.05-rc3, v21.05-rc2, v21.05-rc1 |
|
| #
d9908843 |
| 14-Apr-2021 |
Xueming Li <xuemingl@nvidia.com> |
net/virtio: fix vectorized Rx queue rearm
When Rx queue worked in vectorized mode and rxd <= 512, under traffic of high PPS rate, testpmd often start and receive packets of rxd without further growt
net/virtio: fix vectorized Rx queue rearm
When Rx queue worked in vectorized mode and rxd <= 512, under traffic of high PPS rate, testpmd often start and receive packets of rxd without further growth.
Testpmd started with rxq flush which tried to rx MAX_PKT_BURST(512) packets and drop. When Rx burst size >= Rx queue size, all descriptors in used queue consumed without rearm, device can't receive more packets. The next Rx burst returned at once since no used descriptors found, rearm logic was skipped, rx vq kept in starving state.
To avoid rx vq starving, this patch always check the available queue, rearm if needed even no used descriptor reported by device.
Fixes: fc3d66212fed ("virtio: add vector Rx") Fixes: 2d7c37194ee4 ("net/virtio: add NEON based Rx handler") Fixes: 52b5a707e6ca ("net/virtio: add Altivec Rx") Cc: stable@dpdk.org
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Reviewed-by: David Christensen <drc@linux.vnet.ibm.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
| #
3169550f |
| 16-Mar-2021 |
Maxime Coquelin <maxime.coquelin@redhat.com> |
net/virtio: remove reference to virtqueue in vrings
Vrings are part of the virtqueues, so we don't need to have a pointer to it in Vrings descriptions.
Instead, let's just subtract from its offset
net/virtio: remove reference to virtqueue in vrings
Vrings are part of the virtqueues, so we don't need to have a pointer to it in Vrings descriptions.
Instead, let's just subtract from its offset to calculate virtqueue address.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Chenbo Xia <chenbo.xia@intel.com> Reviewed-by: David Marchand <david.marchand@redhat.com> Tested-by: Balazs Nemeth <bnemeth@redhat.com>
show more ...
|
|
Revision tags: v21.02, v21.02-rc4, v21.02-rc3, v21.02-rc2 |
|
| #
df96fd0d |
| 29-Jan-2021 |
Bruce Richardson <bruce.richardson@intel.com> |
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by:
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Steven Webster <steven.webster@windriver.com>
show more ...
|
|
Revision tags: v21.02-rc1, v20.11, v20.11-rc5, v20.11-rc4, v20.11-rc3, v20.11-rc2, v20.11-rc1, v20.08, v20.08-rc4, v20.08-rc3, v20.08-rc2, v20.08-rc1, v20.05, v20.05-rc4, v20.05-rc3, v20.05-rc2 |
|
| #
ea5207c1 |
| 30-Apr-2020 |
Joyce Kong <joyce.kong@arm.com> |
virtio: use one way barrier for split vring used index
In case VIRTIO_F_ORDER_PLATFORM(36) is not negotiated, then the frontend and backend are assumed to be implemented in software, that is they ca
virtio: use one way barrier for split vring used index
In case VIRTIO_F_ORDER_PLATFORM(36) is not negotiated, then the frontend and backend are assumed to be implemented in software, that is they can run on identical CPUs in an SMP configuration. Thus a weak form of memory barriers like rte_smp_r/wmb, other than rte_cio_r/wmb, is sufficient for this case(vq->hw->weak_barriers == 1) and yields better performance. For the above case, this patch helps yielding even better performance by replacing the two-way barriers with C11 one-way barriers for used index in split ring.
Signed-off-by: Joyce Kong <joyce.kong@arm.com> Reviewed-by: Gavin Hu <gavin.hu@arm.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
|
Revision tags: v20.05-rc1, v20.02, v20.02-rc4, v20.02-rc3, v20.02-rc2, v20.02-rc1, v19.11, v19.11-rc4, v19.11-rc3, v19.11-rc2, v19.11-rc1 |
|
| #
016f56b5 |
| 11-Sep-2019 |
Thibaut Collet <thibaut.collet@6wind.com> |
net/virtio: get all pending Rx packets in vectorized paths
The loop to read packets does not take all packets as the number of available packets (nb_used) is decremented in the loop. Take all availa
net/virtio: get all pending Rx packets in vectorized paths
The loop to read packets does not take all packets as the number of available packets (nb_used) is decremented in the loop. Take all available packets provides a performance improvement of 3%.
Fixes: fc3d66212fed ("virtio: add vector Rx") Cc: stable@dpdk.org
Signed-off-by: Thibaut Collet <thibaut.collet@6wind.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
| #
6958e40d |
| 11-Sep-2019 |
Thibaut Collet <thibaut.collet@6wind.com> |
net/virtio: fix Rx stats with vectorized functions
With vectorized functions, only the rx stats for number of packets is incremented. Update also the other statistics. Performance impact is about 2%
net/virtio: fix Rx stats with vectorized functions
With vectorized functions, only the rx stats for number of packets is incremented. Update also the other statistics. Performance impact is about 2%
Fixes: fc3d66212fed ("virtio: add vector Rx") Cc: stable@dpdk.org
Signed-off-by: Thibaut Collet <thibaut.collet@6wind.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
|
Revision tags: v19.08, v19.08-rc4, v19.08-rc3, v19.08-rc2, v19.08-rc1, v19.05, v19.05-rc4, v19.05-rc3, v19.05-rc2, v19.05-rc1 |
|
| #
dfd33aa4 |
| 19-Mar-2019 |
Tiwei Bie <tiwei.bie@intel.com> |
net/virtio: refactor virtqueue structure
Put split ring and packed ring specific fields into separate sub-structures, and also union them as they won't be available at the same time.
Signed-off-by:
net/virtio: refactor virtqueue structure
Put split ring and packed ring specific fields into separate sub-structures, and also union them as they won't be available at the same time.
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
|
Revision tags: v19.02, v19.02-rc4, v19.02-rc3, v19.02-rc2, v19.02-rc1, v18.11, v18.11-rc5, v18.11-rc4, v18.11-rc3, v18.11-rc2, v18.11-rc1, v18.08, v18.08-rc3, v18.08-rc2, v18.08-rc1, v18.05, v18.05-rc6, v18.05-rc5, v18.05-rc4, v18.05-rc3, v18.05-rc2, v18.05-rc1, v18.02, v18.02-rc4, v18.02-rc3, v18.02-rc2, v18.02-rc1 |
|
| #
ffc905f3 |
| 22-Jan-2018 |
Ferruh Yigit <ferruh.yigit@intel.com> |
ethdev: separate driver APIs
Create a rte_ethdev_driver.h file and move PMD specific APIs here. Drivers updated to include this new header file.
There is no update in header content and since ethde
ethdev: separate driver APIs
Create a rte_ethdev_driver.h file and move PMD specific APIs here. Drivers updated to include this new header file.
There is no update in header content and since ethdev.h included by ethdev_driver.h, nothing changed from driver point of view, only logically grouping of APIs. From applications point of view they can't access to driver specific APIs anymore and they shouldn't.
More PMD specific data structures still remain in ethdev.h because of inline functions in header use them. Those will be handled separately.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
| #
5b56d18d |
| 11-Dec-2017 |
Tiwei Bie <tiwei.bie@intel.com> |
net/virtio: remove redundant macro definitions for vector Rx
RTE_VIRTIO_VPMD_RX_BURST and RTE_VIRTIO_VPMD_RX_REARM_THRESH have been defined and used in virtio_rxtx_simple.h, but are defined again in
net/virtio: remove redundant macro definitions for vector Rx
RTE_VIRTIO_VPMD_RX_BURST and RTE_VIRTIO_VPMD_RX_REARM_THRESH have been defined and used in virtio_rxtx_simple.h, but are defined again in virtio_rxtx_simple_*.c. It just happens to work. So remove the redundant definitions from the *.c files.
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
show more ...
|
| #
5566a3e3 |
| 19-Dec-2017 |
Bruce Richardson <bruce.richardson@intel.com> |
drivers: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@in
drivers: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
|
Revision tags: v17.11, v17.11-rc4, v17.11-rc3 |
|
| #
4c00cfdc |
| 04-Nov-2017 |
Thomas Monjalon <thomas@monjalon.net> |
remove useless memzone includes
The memzone header is often included without good reason.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
|
|
Revision tags: v17.11-rc2, v17.11-rc1, v17.08, v17.08-rc4, v17.08-rc3, v17.08-rc2, v17.08-rc1, v17.05, v17.05-rc4, v17.05-rc3, v17.05-rc2 |
|
| #
b7be4f46 |
| 19-Apr-2017 |
Zhiyong Yang <zhiyong.yang@intel.com> |
net/virtio: support to turn on/off traffic flow
Current virtio_dev_stop only disables interrupt and marks link down, When it is invoked, tx/rx traffic flows still work. This is a strange behavior. T
net/virtio: support to turn on/off traffic flow
Current virtio_dev_stop only disables interrupt and marks link down, When it is invoked, tx/rx traffic flows still work. This is a strange behavior. The patch supports the switch of flow.
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
show more ...
|
|
Revision tags: v17.05-rc1, v17.02, v17.02-rc3, v17.02-rc2, v17.02-rc1, v16.11, v16.11-rc3, v16.11-rc2, v16.11-rc1, v16.07, v16.07-rc5, v16.07-rc4, v16.07-rc3, v16.07-rc2 |
|
| #
f412f14f |
| 05-Jul-2016 |
Jerin Jacob <jerin.jacob@caviumnetworks.com> |
net/virtio: move SSE based Rx code to separate file
Split out SSE instruction based virtio simple Rx implementation to a separate file
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Ac
net/virtio: move SSE based Rx code to separate file
Split out SSE instruction based virtio simple Rx implementation to a separate file
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|