Hi Ilya,
On 1/5/22 09:19, Maxime Coquelin wrote:
This patch adds a new hash Tx steering mode that
distributes the traffic on all the Tx queues, whatever the
number of PMD threads. It would be useful for guests
expecting traffic to be distributed on all the vCPUs.
The idea here is to re-use the 5-tuple hash of the packets,
already computed to build the flows batches (and so it
does not provide flexibility on which fields are part of
the hash).
There are also no user-configurable indirection table,
given the feature is transparent to the guest. The queue
selection is just a modulo operation between the packet
hash and the number of Tx queues.
There are no (at least intentionnally) functionnal changes
for the existing XPS and static modes. There should not be
noticeable performance changes for these modes (only one
more branch in the hot path).
For the hash mode, performance could be impacted due to
locking when multiple PMD threads are in use (same as
XPS mode) and also because of the second level of batching.
Regarding the batching, the existing Tx port output_pkts
is not modified. It means that at maximum, NETDEV_MAX_BURST
can be batched for all the Tx queues. A second level of
batching is done in dp_netdev_pmd_flush_output_on_port(),
only for this hash mode.
Signed-off-by: Maxime Coquelin <[email protected]>
Reviewed-by: David Marchand <[email protected]>
---
Documentation/automake.mk | 1 +
Documentation/topics/index.rst | 1 +
.../topics/userspace-tx-steering.rst | 73 ++++++++++
lib/dpif-netdev.c | 131 +++++++++++++++---
4 files changed, 183 insertions(+), 23 deletions(-)
create mode 100644 Documentation/topics/userspace-tx-steering.rst
I noticed I missed to update the NEWS file. This is what I would add:
"
- Userspace datapath:
* New hash-based Tx packets steering mode, selectable with the new
port
option: 'other_config:tx-steering=hash'.
"
Let me know if I need to submit a new revision with this change, or if
you want to add it by yourself while applying (if the series looks good
to you).
Thanks,
Maxime
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev