[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <e245a7d9-4ef7-7a39-c243-696ef98b49c2@solarflare.com>
Date: Thu, 8 Mar 2018 15:43:50 +0000
From: Edward Cree <ecree@...arflare.com>
To: <linux-net-drivers@...arflare.com>,
David Miller <davem@...emloft.net>
CC: netdev <netdev@...r.kernel.org>,
"John W. Linville" <linville@...driver.com>
Subject: [PATCH v2 net-next 0/2] ntuple filters with RSS
This series introduces the ability to mark an ethtool steering filter to use
RSS spreading, and the ability to create and configure multiple RSS contexts
with different indirection tables, hash keys, and hash fields.
An implementation for the sfc driver (for 7000-series and later SFC NICs) is
included in patch 2/2.
The anticipated use case of this feature is for steering traffic destined for
a container (or virtual machine) to the subset of CPUs on which processes in
the container (or the VM's vCPUs) are bound, while retaining the scalability
of RSS spreading from the viewpoint inside the container.
The use of both a base queue number (ring_cookie) and indirection table is
intended to allow re-use of a single RSS context to target multiple sets of
CPUs. For instance, if an 8-core system is hosting three containers on CPUs
[1,2], [3,4] and [6,7], then a single RSS context with an equal-weight [0,1]
indirection table could be used to target all three containers by setting
ring_cookie to 1, 3 and 6 on the respective filters.
v2: Initialised ctx in efx_ef10_filter_insert() to avoid (false positive) gcc
warning.
Edward Cree (2):
net: ethtool: extend RXNFC API to support RSS spreading of filter
matches
sfc: support RSS spreading of ethtool ntuple filters
drivers/net/ethernet/sfc/ef10.c | 273 ++++++++++++++++++++++------------
drivers/net/ethernet/sfc/efx.c | 65 +++++++-
drivers/net/ethernet/sfc/efx.h | 12 +-
drivers/net/ethernet/sfc/ethtool.c | 153 ++++++++++++++++---
drivers/net/ethernet/sfc/farch.c | 11 +-
drivers/net/ethernet/sfc/filter.h | 7 +-
drivers/net/ethernet/sfc/net_driver.h | 44 +++++-
drivers/net/ethernet/sfc/nic.h | 2 -
drivers/net/ethernet/sfc/siena.c | 26 ++--
include/linux/ethtool.h | 5 +
include/uapi/linux/ethtool.h | 32 +++-
net/core/ethtool.c | 64 ++++++--
12 files changed, 523 insertions(+), 171 deletions(-)
Powered by blists - more mailing lists