[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1629444920-25437-1-git-send-email-moyufeng@huawei.com>
Date: Fri, 20 Aug 2021 15:35:16 +0800
From: Yufeng Mo <moyufeng@...wei.com>
To: <davem@...emloft.net>, <kuba@...nel.org>
CC: <netdev@...r.kernel.org>, <shenjian15@...wei.com>,
<lipeng321@...wei.com>, <yisen.zhuang@...wei.com>,
<linyunsheng@...wei.com>, <huangguangbin2@...wei.com>,
<chenhao288@...ilicon.com>, <salil.mehta@...wei.com>,
<moyufeng@...wei.com>, <linuxarm@...wei.com>,
<linuxarm@...neuler.org>, <dledford@...hat.com>, <jgg@...pe.ca>,
<netanel@...zon.com>, <akiyano@...zon.com>,
<thomas.lendacky@....com>, <irusskikh@...vell.com>,
<michael.chan@...adcom.com>, <edwin.peer@...adcom.com>,
<rohitm@...lsio.com>, <jacob.e.keller@...el.com>,
<ioana.ciornei@....com>, <vladimir.oltean@....com>,
<sgoutham@...vell.com>, <sbhatta@...vell.com>, <saeedm@...dia.com>,
<ecree.xilinx@...il.com>, <grygorii.strashko@...com>,
<merez@...eaurora.org>, <kvalo@...eaurora.org>,
<linux-wireless@...r.kernel.org>
Subject: [PATCH V3 net-next 0/4] ethtool: extend coalesce uAPI
In order to support some configuration in coalesce uAPI, this series
extend coalesce uAPI and add support for CQE mode.
Below is some test result with HNS3 driver:
1. old ethtool(ioctl) + new kernel:
estuary:/$ ethtool -c eth0
Coalesce parameters for eth0:
Adaptive RX: on TX: on
stats-block-usecs: 0
sample-interval: 0
pkt-rate-low: 0
pkt-rate-high: 0
rx-usecs: 20
rx-frames: 0
rx-usecs-irq: 0
rx-frames-irq: 0
tx-usecs: 20
tx-frames: 0
tx-usecs-irq: 0
tx-frames-irq: 0
rx-usecs-low: 0
rx-frame-low: 0
tx-usecs-low: 0
tx-frame-low: 0
rx-usecs-high: 0
rx-frame-high: 0
tx-usecs-high: 0
tx-frame-high: 0
2. ethtool(netlink with cqe mode) + kernel without cqe mode:
estuary:/$ ethtool -c eth0
Coalesce parameters for eth0:
Adaptive RX: on TX: on
stats-block-usecs: n/a
sample-interval: n/a
pkt-rate-low: n/a
pkt-rate-high: n/a
rx-usecs: 20
rx-frames: 0
rx-usecs-irq: n/a
rx-frames-irq: n/a
tx-usecs: 20
tx-frames: 0
tx-usecs-irq: n/a
tx-frames-irq: n/a
rx-usecs-low: n/a
rx-frame-low: n/a
tx-usecs-low: n/a
tx-frame-low: n/a
rx-usecs-high: 0
rx-frame-high: n/a
tx-usecs-high: 0
tx-frame-high: n/a
CQE mode RX: n/a TX: n/a
3. ethool(netlink with cqe mode) + kernel with cqe mode:
estuary:/$ ethtool -c eth0
Coalesce parameters for eth0:
Adaptive RX: on TX: on
stats-block-usecs: n/a
sample-interval: n/a
pkt-rate-low: n/a
pkt-rate-high: n/a
rx-usecs: 20
rx-frames: 0
rx-usecs-irq: n/a
rx-frames-irq: n/a
tx-usecs: 20
tx-frames: 0
tx-usecs-irq: n/a
tx-frames-irq: n/a
rx-usecs-low: n/a
rx-frame-low: n/a
tx-usecs-low: n/a
tx-frame-low: n/a
rx-usecs-high: 0
rx-frame-high: n/a
tx-usecs-high: 0
tx-frame-high: n/a
CQE mode RX: off TX: off
4. ethool(netlink without cqe mode) + kernel with cqe mode:
estuary:/$ ethtool -c eth0
Coalesce parameters for eth0:
Adaptive RX: on TX: on
stats-block-usecs: n/a
sample-interval: n/a
pkt-rate-low: n/a
pkt-rate-high: n/a
rx-usecs: 20
rx-frames: 0
rx-usecs-irq: n/a
rx-frames-irq: n/a
tx-usecs: 20
tx-frames: 0
tx-usecs-irq: n/a
tx-frames-irq: n/a
rx-usecs-low: n/a
rx-frame-low: n/a
tx-usecs-low: n/a
tx-frame-low: n/a
rx-usecs-high: 0
rx-frame-high: n/a
tx-usecs-high: 0
tx-frame-high: n/a
Change log:
V2 -> V3:
fix some warning on W=1 builds in #2
V1 -> V2:
1. fix compile error using allmodconfig in #2
2. move some property-related modifications from #2 to #1
for better review suggested by Jakub Kicinski.
Change log from RFC:
V3 -> V4:
add document explaining the difference between CQE and EQE
in #1 suggested by Jakub Kicinski.
V2 -> V3:
1. split #1 into adding new parameter and adding new attributes.
2. use NLA_POLICY_MAX(NLA_U8, 1) instead of NLA_U8.
3. modify the description of CQE in Document.
V1 -> V2:
refactor #1 in V1 suggestted by Jakub Kicinski.
Yufeng Mo (4):
ethtool: add two coalesce attributes for CQE mode
ethtool: extend coalesce setting uAPI with CQE mode
net: hns3: add support for EQE/CQE mode configuration
net: hns3: add ethtool support for CQE/EQE mode configuration
Documentation/networking/ethtool-netlink.rst | 15 +++++++
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 8 +++-
drivers/net/ethernet/amazon/ena/ena_ethtool.c | 8 +++-
drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c | 8 +++-
.../net/ethernet/aquantia/atlantic/aq_ethtool.c | 8 +++-
drivers/net/ethernet/broadcom/bcmsysport.c | 8 +++-
drivers/net/ethernet/broadcom/bnx2.c | 12 ++++--
.../net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 8 +++-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 8 +++-
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 8 +++-
drivers/net/ethernet/broadcom/tg3.c | 10 ++++-
drivers/net/ethernet/brocade/bna/bnad_ethtool.c | 12 ++++--
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c | 8 +++-
.../net/ethernet/cavium/thunder/nicvf_ethtool.c | 4 +-
drivers/net/ethernet/chelsio/cxgb/cxgb2.c | 8 +++-
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 8 +++-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 8 +++-
.../net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 8 +++-
drivers/net/ethernet/cisco/enic/enic_ethtool.c | 8 +++-
drivers/net/ethernet/cortina/gemini.c | 8 +++-
drivers/net/ethernet/emulex/benet/be_ethtool.c | 8 +++-
drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c | 8 +++-
.../net/ethernet/freescale/enetc/enetc_ethtool.c | 8 +++-
drivers/net/ethernet/freescale/fec_main.c | 14 ++++---
drivers/net/ethernet/freescale/gianfar_ethtool.c | 8 +++-
drivers/net/ethernet/hisilicon/hip04_eth.c | 8 +++-
drivers/net/ethernet/hisilicon/hns/hns_ethtool.c | 12 +++++-
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 1 +
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 49 +++++++++++++++++++++-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | 11 +++++
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 26 ++++++++++--
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 1 +
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 1 +
drivers/net/ethernet/huawei/hinic/hinic_ethtool.c | 8 +++-
drivers/net/ethernet/intel/e1000/e1000_ethtool.c | 8 +++-
drivers/net/ethernet/intel/e1000e/ethtool.c | 8 +++-
drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 8 +++-
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 12 +++++-
drivers/net/ethernet/intel/iavf/iavf_ethtool.c | 12 +++++-
drivers/net/ethernet/intel/ice/ice_ethtool.c | 12 ++++--
drivers/net/ethernet/intel/igb/igb_ethtool.c | 8 +++-
drivers/net/ethernet/intel/igbvf/ethtool.c | 8 +++-
drivers/net/ethernet/intel/igc/igc_ethtool.c | 8 +++-
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 8 +++-
drivers/net/ethernet/intel/ixgbevf/ethtool.c | 8 +++-
drivers/net/ethernet/jme.c | 12 ++++--
drivers/net/ethernet/marvell/mv643xx_eth.c | 12 ++++--
drivers/net/ethernet/marvell/mvneta.c | 14 +++++--
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 14 +++++--
.../ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 8 +++-
drivers/net/ethernet/marvell/skge.c | 8 +++-
drivers/net/ethernet/marvell/sky2.c | 8 +++-
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 8 +++-
.../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 8 +++-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 8 +++-
.../ethernet/mellanox/mlx5/core/ipoib/ethtool.c | 8 +++-
drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 12 ++++--
.../net/ethernet/netronome/nfp/nfp_net_ethtool.c | 8 +++-
drivers/net/ethernet/ni/nixge.c | 14 +++++--
.../net/ethernet/pensando/ionic/ionic_ethtool.c | 8 +++-
.../ethernet/qlogic/netxen/netxen_nic_ethtool.c | 8 +++-
drivers/net/ethernet/qlogic/qede/qede.h | 4 +-
drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 8 +++-
.../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | 8 +++-
drivers/net/ethernet/realtek/r8169_main.c | 10 ++++-
drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c | 8 +++-
drivers/net/ethernet/sfc/ethtool.c | 8 +++-
drivers/net/ethernet/sfc/falcon/ethtool.c | 8 +++-
drivers/net/ethernet/socionext/netsec.c | 10 +++--
.../net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 8 +++-
drivers/net/ethernet/synopsys/dwc-xlgmac-ethtool.c | 14 +++++--
drivers/net/ethernet/tehuti/tehuti.c | 12 ++++--
drivers/net/ethernet/ti/cpsw.c | 2 +-
drivers/net/ethernet/ti/cpsw_ethtool.c | 8 +++-
drivers/net/ethernet/ti/cpsw_new.c | 2 +-
drivers/net/ethernet/ti/cpsw_priv.h | 8 +++-
drivers/net/ethernet/ti/davinci_emac.c | 14 +++++--
drivers/net/ethernet/via/via-velocity.c | 8 +++-
drivers/net/ethernet/xilinx/ll_temac_main.c | 14 +++++--
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 18 ++++++--
drivers/net/netdevsim/ethtool.c | 8 +++-
drivers/net/tun.c | 8 +++-
drivers/net/usb/r8152.c | 8 +++-
drivers/net/virtio_net.c | 8 +++-
drivers/net/vmxnet3/vmxnet3_ethtool.c | 12 ++++--
drivers/net/wireless/ath/wil6210/ethtool.c | 14 +++++--
drivers/s390/net/qeth_ethtool.c | 4 +-
drivers/staging/qlge/qlge_ethtool.c | 10 ++++-
include/linux/ethtool.h | 22 ++++++++--
include/uapi/linux/ethtool_netlink.h | 2 +
net/ethtool/coalesce.c | 29 ++++++++++---
net/ethtool/ioctl.c | 15 +++++--
net/ethtool/netlink.h | 2 +-
93 files changed, 699 insertions(+), 209 deletions(-)
--
2.8.1
Powered by blists - more mailing lists