|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2, v22.03-rc1 |
|
| #
7be78d02 |
| 29-Nov-2021 |
Josh Soref <[email protected]> |
fix spelling in comments and strings
The tool comes from https://github.com/jsoref
Signed-off-by: Josh Soref <[email protected]> Signed-off-by: Thomas Monjalon <[email protected]>
|
|
Revision tags: v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2 |
|
| #
0c9d6620 |
| 27-Oct-2021 |
Maxime Coquelin <[email protected]> |
net/virtio: support RSS
Provide the capability to update the hash key, hash types and RETA table on the fly (without needing to stop/start the device). However, the key length and the number of RETA
net/virtio: support RSS
Provide the capability to update the hash key, hash types and RETA table on the fly (without needing to stop/start the device). However, the key length and the number of RETA entries are fixed to 40B and 128 entries respectively. This is done in order to simplify the design, but may be revisited later as the Virtio spec provides this flexibility.
Note that only VIRTIO_NET_F_RSS support is implemented, VIRTIO_NET_F_HASH_REPORT, which would enable reporting the packet RSS hash calculated by the device into mbuf.rss, is not yet supported.
Regarding the default RSS configuration, it has been chosen to use the default Intel ixgbe key as default key, and default RETA is a simple modulo between the hash and the number of Rx queues.
Signed-off-by: Maxime Coquelin <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]>
show more ...
|
|
Revision tags: v21.11-rc1 |
|
| #
daa02b5c |
| 15-Oct-2021 |
Olivier Matz <[email protected]> |
mbuf: add namespace to offload flags
Fix the mbuf offload flags namespace by adding an RTE_ prefix to the name. The old flags remain usable, but a deprecation warning is issued at compilation.
Sign
mbuf: add namespace to offload flags
Fix the mbuf offload flags namespace by adding an RTE_ prefix to the name. The old flags remain usable, but a deprecation warning is issued at compilation.
Signed-off-by: Olivier Matz <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Somnath Kotur <[email protected]>
show more ...
|
| #
ad6f0194 |
| 21-Oct-2021 |
Xuan Ding <[email protected]> |
net/virtio: fix avail descriptor ID
Vhost will update desc’s Buffer ID advance to next used descriptor when VIRTIO_F_IN_ORDER feature negotiated. When virtio reuses the descriptor, the Buffer ID sho
net/virtio: fix avail descriptor ID
Vhost will update desc’s Buffer ID advance to next used descriptor when VIRTIO_F_IN_ORDER feature negotiated. When virtio reuses the descriptor, the Buffer ID should be restored even VIRTQ_DESC_F_INDIRECT feature negotiated.
Fixes: b473061b0e1d ("net/virtio: fix indirect descriptors in packed datapaths") Cc: [email protected]
Signed-off-by: Xuan Ding <[email protected]> Signed-off-by: Yong Liu <[email protected]> Signed-off-by: Miao Li <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| #
6474b594 |
| 16-Sep-2021 |
Ivan Malov <[email protected]> |
net/virtio: fix Tx checksum for tunnel packets
Tx prepare method calls rte_net_intel_cksum_prepare(), which handles tunnel packets correctly, but Tx burst path does not take tunnel presence into acc
net/virtio: fix Tx checksum for tunnel packets
Tx prepare method calls rte_net_intel_cksum_prepare(), which handles tunnel packets correctly, but Tx burst path does not take tunnel presence into account when computing the offsets.
Fixes: 58169a9c8153 ("net/virtio: support Tx checksum offload") Cc: [email protected]
Signed-off-by: Ivan Malov <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Reviewed-by: Chenbo Xia <[email protected]> Reviewed-by: Olivier Matz <[email protected]>
show more ...
|
| #
ba55c94a |
| 30-Sep-2021 |
Maxime Coquelin <[email protected]> |
net/virtio: revert forcing IOVA as VA mode for virtio-user
This patch removes the simplification in Virtio descriptors handling, where their buffer addresses are IOVAs for Virtio PCI devices, and VA
net/virtio: revert forcing IOVA as VA mode for virtio-user
This patch removes the simplification in Virtio descriptors handling, where their buffer addresses are IOVAs for Virtio PCI devices, and VA-only for Virtio-user devices, which added a requirement on Virtio-user that it only supported IOVA as VA.
This change introduced a regression for applications using Virtio-user and other physical PMDs that require IOVA as PA because they don't use an IOMMU.
This patch reverts to the old behaviour, but needed to be reworked because of the refactoring that happened in v21.02.
Fixes: 17043a2909bb ("net/virtio: force IOVA as VA mode for virtio-user") Cc: [email protected]
Reported-by: Olivier Matz <[email protected]> Signed-off-by: Maxime Coquelin <[email protected]> Tested-by: Olivier Matz <[email protected]> Reviewed-by: David Marchand <[email protected]>
show more ...
|
| #
e2ca43a3 |
| 15-Sep-2021 |
Ivan Ilchenko <[email protected]> |
net/virtio: fix Tx cleanup functions to have same signature
There is a family of cleanup from completed transmits functions. Fix packed virtqueues cleanup functions to have the same signature as spl
net/virtio: fix Tx cleanup functions to have same signature
There is a family of cleanup from completed transmits functions. Fix packed virtqueues cleanup functions to have the same signature as split virtqueues have. This lets all functions of the family to match the same callback prototype.
Fixes: 892dc798fa9c ("net/virtio: implement Tx path for packed queues") Cc: [email protected]
Signed-off-by: Ivan Ilchenko <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
|
Revision tags: 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 |
|
| #
85a4fa2f |
| 03-May-2021 |
David Marchand <[email protected]> |
net/virtio: refactor Tx offload helper
Purely cosmetic but it is rather odd to have an "offload" helper that checks if it actually must do something. We already have the same checks in most callers,
net/virtio: refactor Tx offload helper
Purely cosmetic but it is rather odd to have an "offload" helper that checks if it actually must do something. We already have the same checks in most callers, so move this branch in them.
Signed-off-by: David Marchand <[email protected]> Reviewed-by: Flavio Leitner <[email protected]> Reviewed-by: Ruifeng Wang <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| #
004d8e85 |
| 03-May-2021 |
David Marchand <[email protected]> |
net/virtio: do not touch Tx offload flags
Tx offload flags are of the application responsibility. Leave the mbuf alone and use a local storage for implicit tcp checksum offloading in case of TSO.
S
net/virtio: do not touch Tx offload flags
Tx offload flags are of the application responsibility. Leave the mbuf alone and use a local storage for implicit tcp checksum offloading in case of TSO.
Signed-off-by: David Marchand <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]> Acked-by: Flavio Leitner <[email protected]>
show more ...
|
|
Revision tags: v21.05-rc1 |
|
| #
97bd5372 |
| 16-Mar-2021 |
Maxime Coquelin <[email protected]> |
net/virtio: pack virtqueue structure
This patch optimizes packing of the virtqueue struct by moving fields around to fill holes.
Offset field is not used and so can be removed.
Signed-off-by: Maxi
net/virtio: pack virtqueue structure
This patch optimizes packing of the virtqueue struct by moving fields around to fill holes.
Offset field is not used and so can be removed.
Signed-off-by: Maxime Coquelin <[email protected]> Reviewed-by: Chenbo Xia <[email protected]> Reviewed-by: David Marchand <[email protected]> Tested-by: Balazs Nemeth <[email protected]>
show more ...
|
| #
3169550f |
| 16-Mar-2021 |
Maxime Coquelin <[email protected]> |
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 <[email protected]> Reviewed-by: Chenbo Xia <[email protected]> Reviewed-by: David Marchand <[email protected]> Tested-by: Balazs Nemeth <[email protected]>
show more ...
|
|
Revision tags: v21.02, v21.02-rc4, v21.02-rc3, v21.02-rc2 |
|
| #
b5ba7ee4 |
| 26-Jan-2021 |
Maxime Coquelin <[email protected]> |
net/virtio: remove last PCI refs in non-PCI code
This patch finalizes the bus isolation part of this refactoring.
Signed-off-by: Maxime Coquelin <[email protected]> Reviewed-by: Chenbo Xia
net/virtio: remove last PCI refs in non-PCI code
This patch finalizes the bus isolation part of this refactoring.
Signed-off-by: Maxime Coquelin <[email protected]> Reviewed-by: Chenbo Xia <[email protected]> Reviewed-by: David Marchand <[email protected]>
show more ...
|
| #
b4f9a45a |
| 26-Jan-2021 |
Maxime Coquelin <[email protected]> |
net/virtio: move features definition to generic header
This patch moves all the Virtio definition to the generic header. It also renames some helpers to no more reference PCI.
Signed-off-by: Maxime
net/virtio: move features definition to generic header
This patch moves all the Virtio definition to the generic header. It also renames some helpers to no more reference PCI.
Signed-off-by: Maxime Coquelin <[email protected]> Reviewed-by: Chenbo Xia <[email protected]>
show more ...
|
| #
f8b60756 |
| 26-Jan-2021 |
Maxime Coquelin <[email protected]> |
net/virtio: introduce generic virtio header
This patch moves virtio_hw and virtio callbacks into a generic virtio header, now that they have been curated from PCI references.
Signed-off-by: Maxime
net/virtio: introduce generic virtio header
This patch moves virtio_hw and virtio callbacks into a generic virtio header, now that they have been curated from PCI references.
Signed-off-by: Maxime Coquelin <[email protected]> Reviewed-by: Chenbo Xia <[email protected]>
show more ...
|
| #
6e1d9c0c |
| 26-Jan-2021 |
Maxime Coquelin <[email protected]> |
net/virtio: pack virtio HW struct
This patch improves the virtio_hw struct packing, going from 88 down to 80 bytes with a 6 bytes hole in the end of the first cacheline. Fields only used in the slow
net/virtio: pack virtio HW struct
This patch improves the virtio_hw struct packing, going from 88 down to 80 bytes with a 6 bytes hole in the end of the first cacheline. Fields only used in the slow path are placed in the end, so that hot path only uses the first cacheline.
The patch also changes booleans fields to uint8_t type, and fix inconsistencies in their assignments.
Signed-off-by: Maxime Coquelin <[email protected]> Reviewed-by: Chenbo Xia <[email protected]>
show more ...
|
| #
17043a29 |
| 26-Jan-2021 |
Maxime Coquelin <[email protected]> |
net/virtio: force IOVA as VA mode for virtio-user
At least Vhost-user backend of Virtio-user PMD requires IOVA as VA mode. Until now, it was implemented as a hack by forcing to use mbuf's buf_addr f
net/virtio: force IOVA as VA mode for virtio-user
At least Vhost-user backend of Virtio-user PMD requires IOVA as VA mode. Until now, it was implemented as a hack by forcing to use mbuf's buf_addr field instead of buf_iova.
This patch removes all this logic and just fails probing if IOVA as VA mode is not selected. It simplifies the code overall, and removes some bus-specific logic from generic virtio_ethdev.c.
Signed-off-by: Maxime Coquelin <[email protected]> Reviewed-by: Chenbo Xia <[email protected]>
show more ...
|
|
Revision tags: v21.02-rc1 |
|
| #
240a9941 |
| 21-Dec-2020 |
Joyce Kong <[email protected]> |
net/virtio: replace full barrier with thread fence
Replace the smp barriers with atomic thread fence for synchronization between different threads, if there are no load/store operations.
Signed-off
net/virtio: replace full barrier with thread fence
Replace the smp barriers with atomic thread fence for synchronization between different threads, if there are no load/store operations.
Signed-off-by: Joyce Kong <[email protected]> Reviewed-by: Ruifeng Wang <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| #
f1b9cf07 |
| 21-Dec-2020 |
Joyce Kong <[email protected]> |
net/virtio: replace SMP barrier with IO barrier
Replace rte_smp_wmb/rmb with rte_io_wmb/rmb as they are the same on x86 and ppc platforms. Then, for function virtqueue_fetch_flags_packed/ virtqueue_
net/virtio: replace SMP barrier with IO barrier
Replace rte_smp_wmb/rmb with rte_io_wmb/rmb as they are the same on x86 and ppc platforms. Then, for function virtqueue_fetch_flags_packed/ virtqueue_store_flags_packed, the if and else branch are still identical for the platforms except Arm.
Signed-off-by: Joyce Kong <[email protected]> Reviewed-by: Ruifeng Wang <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
|
Revision tags: v20.11, v20.11-rc5, v20.11-rc4, v20.11-rc3, v20.11-rc2, v20.11-rc1 |
|
| #
8410c369 |
| 15-Oct-2020 |
Marvin Liu <[email protected]> |
net/virtio: fix indirect desc length
When transmitting indirect descriptors, first desc will store net_hdr and following descs will be mapped to mbuf segments. Total desc number will be seg_num plus
net/virtio: fix indirect desc length
When transmitting indirect descriptors, first desc will store net_hdr and following descs will be mapped to mbuf segments. Total desc number will be seg_num plus one. Meaning of variable needed is the number of used descs in packed ring. This value will always be two for indirect desc. Now use mbuf segments number for calculating correct desc length.
Fixes: b473061b0e1d ("net/virtio: fix indirect descriptors in packed datapaths") Cc: [email protected]
Signed-off-by: Marvin Liu <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| #
b473061b |
| 28-Sep-2020 |
Marvin Liu <[email protected]> |
net/virtio: fix indirect descriptors in packed datapaths
Like split ring, packed ring will utilize indirect ring elements when queuing mbufs need multiple descriptors. Thus each packet will take onl
net/virtio: fix indirect descriptors in packed datapaths
Like split ring, packed ring will utilize indirect ring elements when queuing mbufs need multiple descriptors. Thus each packet will take only one slot when having multiple segments.
Fixes: 892dc798fa9c ("net/virtio: implement Tx path for packed queues") Cc: [email protected]
Signed-off-by: Marvin Liu <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| #
381f39eb |
| 28-Sep-2020 |
Marvin Liu <[email protected]> |
net/virtio: fix packed ring indirect descricptors setup
Add packed indirect descriptors format into virtio Tx region. When initializing vring, packed indirect descriptors will be initialized if ring
net/virtio: fix packed ring indirect descricptors setup
Add packed indirect descriptors format into virtio Tx region. When initializing vring, packed indirect descriptors will be initialized if ring type is packed.
Fixes: bc80357cd677 ("net/virtio: drop unused field in Tx region structure") Cc: [email protected]
Signed-off-by: Marvin Liu <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| #
f0f5d844 |
| 23-Sep-2020 |
Phil Yang <[email protected]> |
eal: remove deprecated coherent IO memory barriers
Since the 20.08 release deprecated rte_cio_*mb APIs because these APIs provide the same functionality as rte_io_*mb APIs on all platforms, so remov
eal: remove deprecated coherent IO memory barriers
Since the 20.08 release deprecated rte_cio_*mb APIs because these APIs provide the same functionality as rte_io_*mb APIs on all platforms, so remove them and use rte_io_*mb instead.
Signed-off-by: Phil Yang <[email protected]> Signed-off-by: Joyce Kong <[email protected]> Reviewed-by: Ruifeng Wang <[email protected]> Reviewed-by: Honnappa Nagarahalli <[email protected]> Acked-by: David Marchand <[email protected]>
show more ...
|
| #
a1412e05 |
| 18-Sep-2020 |
Vipul Ashri <[email protected]> |
net/virtio: fix variable assignment in helper macro
Inside Macro ASSIGN_UNLESS_EQUAL(var, val), assignment to var is always failing as assignment done using var_ having local scope only. This leads
net/virtio: fix variable assignment in helper macro
Inside Macro ASSIGN_UNLESS_EQUAL(var, val), assignment to var is always failing as assignment done using var_ having local scope only. This leads to TX packets not going out and found broken due to cleanup malfunctioning. This patch fixes the wrong variable assignment.
Fixes: 57f90f894588 ("net/virtio: reuse packed ring functions") Cc: [email protected]
Signed-off-by: Vipul Ashri <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
|
Revision tags: 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 |
|
| #
3fc1d87c |
| 30-Apr-2020 |
Joyce Kong <[email protected]> |
virtio: use one way barrier for split vring avail 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 c
virtio: use one way barrier for split vring avail 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 avail index in split ring.
Signed-off-by: Joyce Kong <[email protected]> Reviewed-by: Gavin Hu <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| #
ea5207c1 |
| 30-Apr-2020 |
Joyce Kong <[email protected]> |
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 <[email protected]> Reviewed-by: Gavin Hu <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|