On Tue, May 15, 2018 at 6:26 PM, Amritha Nambiar
<amritha.namb...@intel.com> wrote:
> This patch series implements support for Tx queue selection based on
> Rx queue(s) map. This is done by configuring Rx queue(s) map per Tx-queue
> using sysfs attribute. If the user configuration for Rx queues does
> not apply, then the Tx queue selection falls back to XPS using CPUs and
> finally to hashing.
>
> XPS is refactored to support Tx queue selection based on either the
> CPUs map or the Rx-queues map. The config option CONFIG_XPS needs to be
> enabled. By default no receive queues are configured for the Tx queue.
>
> - /sys/class/net/<dev>/queues/tx-*/xps_rxqs
>
> This is to enable sending packets on the same Tx-Rx queue pair as this

If I'm reading the patch correctly, isn't this mapping rxq to a set of
txqs (in other words not strictly queue pair which has other
connotations in NIC HW). It is important to make it clear that this
feature is no HW dependent.

> is useful for busy polling multi-threaded workloads where it is not
> possible to pin the threads to a CPU. This is a rework of Sridhar's
> patch for symmetric queueing via socket option:
> https://www.spinics.net/lists/netdev/msg453106.html
>
Please add something about how this was tested and what the
performance gain is to justify the feature.

> v2:
> - Added documentation in networking/scaling.txt
> - Added a simple routine to replace multiple ifdef blocks.
>
> ---
>
> Amritha Nambiar (4):
>       net: Refactor XPS for CPUs and Rx queues
>       net: Enable Tx queue selection based on Rx queues
>       net-sysfs: Add interface for Rx queue map per Tx queue
>       Documentation: Add explanation for XPS using Rx-queue map
>
>
>  Documentation/networking/scaling.txt |   58 +++++++-
>  include/linux/cpumask.h              |   11 +-
>  include/linux/netdevice.h            |   72 ++++++++++
>  include/net/sock.h                   |   18 +++
>  net/core/dev.c                       |  242 
> +++++++++++++++++++++++-----------
>  net/core/net-sysfs.c                 |   85 ++++++++++++
>  net/core/sock.c                      |    5 +
>  net/ipv4/tcp_input.c                 |    7 +
>  net/ipv4/tcp_ipv4.c                  |    1
>  net/ipv4/tcp_minisocks.c             |    1
>  10 files changed, 404 insertions(+), 96 deletions(-)
>
> --

Reply via email to