#
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 ...
|
#
64fcadea |
| 03-May-2022 |
Thomas Monjalon <thomas@monjalon.net> |
avoid AltiVec keyword vector
The AltiVec header file is defining "vector", except in C++ build. The keyword "vector" may conflict easily. As a rule, it is better to use the alternative keyword "__ve
avoid AltiVec keyword vector
The AltiVec header file is defining "vector", except in C++ build. The keyword "vector" may conflict easily. As a rule, it is better to use the alternative keyword "__vector", so we will be able to #undef vector after including AltiVec header.
Later it may become possible to #undef vector in rte_altivec.h with a compatibility breakage.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Reviewed-by: David Christensen <drc@linux.vnet.ibm.com>
show more ...
|
#
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 ...
|
#
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 ...
|
#
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 ...
|
#
f5bf02df |
| 30-Apr-2020 |
Ori Kam <orika@mellanox.com> |
eal/ppc: fix bool type after altivec include
The AltiVec header file breaks boolean type. [1] [2]
Currently the workaround was located only in mlx5 device. Adding the trace module caused this issue
eal/ppc: fix bool type after altivec include
The AltiVec header file breaks boolean type. [1] [2]
Currently the workaround was located only in mlx5 device. Adding the trace module caused this issue to appear again, due to order of includes, it keeps overriding the local fix.
This patch solves this issue by resetting the bool type, immediately after it is being changed.
[1] https://mails.dpdk.org/archives/dev/2018-August/110281.html
[2] In file included from dpdk/ppc_64-power8-linux-gcc/include/rte_mempool_trace_fp.h:18:0, from dpdk/ppc_64-power8-linux-gcc/include/rte_mempool.h:54, from dpdk/drivers/common/mlx5/mlx5_common_mr.c:7: dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point.h: In function '__rte_trace_point_fp_is_enabled': dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point.h:226:2: error: incompatible types when returning type 'int' but '__vector __bool int' was expected return false; ^ In file included from dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point.h:281:0, from dpdk/ppc_64-power8-linux-gcc/include/rte_mempool_trace_fp.h:18, from dpdk/ppc_64-power8-linux-gcc/include/rte_mempool.h:54, from dpdk/drivers/common/mlx5/mlx5_common_mr.c:7: dpdk/ppc_64-power8-linux-gcc/include/rte_mempool_trace_fp.h: In function 'rte_mempool_trace_ops_dequeue_bulk': dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point_provider.h:104:6: error: wrong type argument to unary exclamation mark if (!__rte_trace_point_fp_is_enabled()) \ ^ dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point.h:49:2: note: in expansion of macro '__rte_trace_point_emit_header_fp' __rte_trace_point_emit_header_##_mode(&__##_tp); \ ^ dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point.h:99:2: note: in expansion of macro '__RTE_TRACE_POINT' __RTE_TRACE_POINT(fp, tp, args, __VA_ARGS__) ^ dpdk/ppc_64-power8-linux-gcc/include/rte_mempool_trace_fp.h:20:1: note: in expansion of macro 'RTE_TRACE_POINT_FP' RTE_TRACE_POINT_FP( ^ dpdk/ppc_64-power8-linux-gcc/include/rte_mempool_trace_fp.h: In function 'rte_mempool_trace_ops_dequeue_contig_blocks': dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point_provider.h:104:6: error: wrong type argument to unary exclamation mark if (!__rte_trace_point_fp_is_enabled()) \ ^ dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point.h:49:2: note: in expansion of macro '__rte_trace_point_emit_header_fp' __rte_trace_point_emit_header_##_mode(&__##_tp); \ ^ dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point.h:99:2: note: in expansion of macro '__RTE_TRACE_POINT' __RTE_TRACE_POINT(fp, tp, args, __VA_ARGS__) ^ dpdk/ppc_64-power8-linux-gcc/include/rte_mempool_trace_fp.h:29:1: note: in expansion of macro 'RTE_TRACE_POINT_FP' RTE_TRACE_POINT_FP( ^ dpdk/ppc_64-power8-linux-gcc/include/rte_mempool_trace_fp.h: In function 'rte_mempool_trace_ops_enqueue_bulk': dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point_provider.h:104:6: error: wrong type argument to unary exclamation mark if (!__rte_trace_point_fp_is_enabled()) \
Fixes: 725f5dd0bfb5 ("net/mlx5: fix build on PPC64")
Signed-off-by: Ori Kam <orika@mellanox.com> Signed-off-by: David Christensen <drc@linux.vnet.ibm.com> Tested-by: David Christensen <drc@linux.vnet.ibm.com> Tested-by: Raslan Darawsheh <rasland@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
a44c4e1e |
| 30-Sep-2019 |
David Christensen <drc@linux.vnet.ibm.com> |
net/virtio: fix Rx AltiVec path by getting all packets
The loop to read packets does not take all packets as the number of available packets (nb_used) is decremented in the loop.
Fixes: 52b5a707e6c
net/virtio: fix Rx AltiVec path by getting all packets
The loop to read packets does not take all packets as the number of available packets (nb_used) is decremented in the loop.
Fixes: 52b5a707e6ca ("net/virtio: add Altivec Rx")
Signed-off-by: David Christensen <drc@linux.vnet.ibm.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
86d1afa1 |
| 30-Sep-2019 |
David Christensen <drc@linux.vnet.ibm.com> |
net/virtio: fix Rx stats on AltiVec path
With vectorized functions, only the rx stats for number of packets is incremented. Update also the other statistics.
Fixes: 52b5a707e6ca ("net/virtio: add A
net/virtio: fix Rx stats on AltiVec path
With vectorized functions, only the rx stats for number of packets is incremented. Update also the other statistics.
Fixes: 52b5a707e6ca ("net/virtio: add Altivec Rx")
Signed-off-by: David Christensen <drc@linux.vnet.ibm.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
52b5a707 |
| 14-Aug-2019 |
David Christensen <drc@linux.vnet.ibm.com> |
net/virtio: add Altivec Rx
Added the file virtio_rxtx_simple_altivec.c which implements Altivec code for the virtio vectorized RX functions. Updated the various build files.
Signed-off-by: David Ch
net/virtio: add Altivec Rx
Added the file virtio_rxtx_simple_altivec.c which implements Altivec code for the virtio vectorized RX functions. Updated the various build files.
Signed-off-by: David Christensen <drc@linux.vnet.ibm.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|