[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AM6PR05MB519143027C680A3CDA578C1CA0890@AM6PR05MB5191.eurprd05.prod.outlook.com>
Date: Mon, 7 Jan 2019 14:00:33 +0000
From: Shay Agroskin <shayag@...lanox.com>
To: Michael Chan <michael.chan@...adcom.com>,
"davem@...emloft.net" <davem@...emloft.net>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"andrew.gospodarek@...adcom.com" <andrew.gospodarek@...adcom.com>,
Tariq Toukan <tariqt@...lanox.com>,
Eran Ben Elisha <eranbe@...lanox.com>,
Saeed Mahameed <saeedm@...lanox.com>
Subject: RE: [PATCH net-next v5 0/5] Introduce NETIF_F_GRO_HW
Hi,
To use NETIF_F_GRO_HW offload, we first need to double-check what are its exact well-defined requirements/expectations.
1) What is the defined relation between the (SW) GRO (that can be easily modified in kernel) and HW-GRO that
should be a well-defined HW capability ?
2) While we understand that implementing GRO in HW can result in performance gain, is HW-GRO's
singularity in its ability to construct packets that can be re-segmented? (as appose to LRO).
What else is expected from HW when turning it on?
3) For what I managed to gather from different mail-threads/presentations,
this is the list of conditions that makes an aggregated packet reversible:
a) All segments (aggregated packets) must be of the same size (except possibly the last one).
(This in order to know each segments size, when re-segmenting an aggregated packet)
b) IP ID must be incrementing unless DF is
(To have the whole 4th layer, in order to know if a packet belongs to a certain flow)
c) Also, all the other fields need to be the same to belong to the same flow and be aggregated.
Any thoughts? Do I miss anything here ?
Thanks,
Shay Agroskin
-----Original Message-----
From: netdev-owner@...r.kernel.org <netdev-owner@...r.kernel.org> On Behalf Of Michael Chan
Sent: Saturday, December 16, 2017 10:10 AM
To: davem@...emloft.net
Cc: netdev@...r.kernel.org; andrew.gospodarek@...adcom.com
Subject: [PATCH net-next v5 0/5] Introduce NETIF_F_GRO_HW
Introduce NETIF_F_GRO_HW feature flag and convert drivers that support hardware GRO to use the new flag.
v5:
- Documentation changes requested by Alexander Duyck.
- bnx2x changes requested by Manish Chopra to enable LRO by default, and disable GRO_HW if disable_tpa module parameter is set.
v4:
- more changes requested by Alexander Duyck:
- check GRO_HW/GRO dependency in drivers's ndo_fix_features().
- Reverse the order of RXCSUM and GRO_HW dependency check in netdev_fix_features().
- No propagation in netdev_disable_gro_hw().
v3:
- Let driver's ndo_fix_features() disable NETIF_F_LRO when NETIF_F_GRO_HW is set instead of doing it in common netdev_fix_features().
v2:
- NETIF_F_GRO_HW flag propagation between upper and lower devices not required (see patch 1).
- NETIF_F_GRO_HW depends on NETIF_F_GRO and NETIF_F_RXCSUM.
- Add dev_disable_gro_hw() to disable GRO_HW for generic XDP.
- Use ndo_fix_features() on all 3 drivers to drop GRO_HW when it is not supported
Michael Chan (5):
net: Introduce NETIF_F_GRO_HW.
net: Disable GRO_HW when generic XDP is installed on a device.
bnxt_en: Use NETIF_F_GRO_HW.
bnx2x: Use NETIF_F_GRO_HW.
qede: Use NETIF_F_GRO_HW.
Documentation/networking/netdev-features.txt | 9 +++++++
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 24 +++++++++---------- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 8 ++++---
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 27 +++++++++++++++------
drivers/net/ethernet/qlogic/qede/qede.h | 2 ++
drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 3 +++
drivers/net/ethernet/qlogic/qede/qede_filter.c | 21 +++++++++++------
drivers/net/ethernet/qlogic/qede/qede_main.c | 17 +++++---------
include/linux/netdev_features.h | 3 +++
net/core/dev.c | 30 ++++++++++++++++++++++++
net/core/ethtool.c | 1 +
11 files changed, 105 insertions(+), 40 deletions(-)
--
1.8.3.1
Powered by blists - more mailing lists