[PATCH V2 net-next 0/6] ethtool: add support to set/get tx copybreak buf size and rx buf len
flat view
STALE1855d
SUPERSEDED
From: Guangbin Huang <hidden>
Date: 2021-09-24 14:34:22
Also in:
linux-s390
Subsystem:
3cr990 network driver, 8169 10/100/1000 gigabit ethernet driver, amazon ethernet drivers, amd xgbe driver, aquantia ethernet driver (atlantic), arm/cavium thunder network driver, arm/cortina systems gemini arm architecture, atlx ethernet drivers, atmel macb ethernet driver, broadcom b44 10/100 ethernet driver, broadcom bnx2 gigabit ethernet driver, broadcom bnx2x 10 gigabit ethernet driver, broadcom bnxt_en 50 gigabit ethernet driver, broadcom tg3 gigabit ethernet driver, brocade bna 10 gigabit ethernet driver, can network drivers, cavium liquidio network driver, cisco vic ethernet nic driver, cxgb3 ethernet driver (cxgb3), cxgb4 ethernet driver (cxgb4), cxgb4vf ethernet driver (cxgb4vf), documentation, emulex 10gbps nic be2, be3-r, lancer, skyhawk-r driver (be2net), forcedeth gigabit ethernet driver, freescale enetc ethernet drivers, freescale quicc engine ucc ethernet driver, freescale etsec ethernet driver (gianfar), hisilicon network subsystem 3 driver (hns3), hisilicon network subsystem driver, huawei ethernet driver, hyper-v/azure core and drivers, ibm power sriov virtual nic device driver, intel ethernet drivers, linux for powerpc (32-bit and 64-bit), mac80211, marvell gigabit ethernet drivers (skge/sky2), marvell mv643xx ethernet driver, marvell mvneta ethernet driver, marvell mvpp2 ethernet driver, marvell octeontx2 physical function driver, mellanox ethernet driver (mlx4_en), mellanox ethernet driver (mlx5e), mellanox mlx4 core vpi driver, mellanox mlx5 core vpi driver, myricom myri-10g 10gbe driver (myri10ge), netdevsim, netronome ethernet drivers, networking drivers, networking [ethtool], networking [general], netxen (1/10) gbe support, pcnet32 network driver, pensando ethernet drivers, qlogic ql4xxx ethernet driver, qlogic qlcnic (1/10)gb ethernet driver, qualcomm atheros qca7k ethernet driver, qualcomm emac gigabit ethernet driver, renesas ethernet avb driver, renesas superh ethernet driver, s390 architecture, s390 network drivers, sfc network driver, stmmac ethernet driver, tehuti ethernet driver, the rest, ti ethernet switch driver (cpsw), usb networking drivers, user-mode linux (uml), virtio net driver, vmware vmxnet3 ethernet driver, xilinx axi ethernet driver, xilinx ll temac ethernet driver · Maintainers:
David Dillow, Heiner Kallweit, Arthur Kiyanovski, David Arinzon, Raju Rangoju, Prashanth Kumar K R, Sukhdeep Singh, Sunil Goutham, Hans Ulli Kroll, Linus Walleij, Chris Snook, Théo Lebrun, Michael Chan, Rasesh Mody, Sudarsana Kalluru, Manish Chopra, Pavan Chebbi, Marc Kleine-Budde, Vincent Mailhol, Satish Kharat, Potnuri Bharat Teja, Jonathan Corbet, Ajit Khaparde, Sriharsha Basavapatna, Rain River, Zhu Yanjun, Claudiu Manoil, Vladimir Oltean, Wei Fang, Clark Wang, Jian Shen, Jijie Shao, Cai Huoqing, Haiyang Zhang, Wei Liu, Dexuan Cui, Haren Myneni, Rick Lindsley, Tony Nguyen, Przemek Kitszel, Madhavan Srinivasan, Johannes Berg, Sebastian Hesselbarth, Marcin Wojtas, Russell King, Geetha sowjanya, Ratheesh Kannoth, Subbaraya Sundeep, Bharat Bhushan, Tariq Toukan, Saeed Mahameed, Mark Bloch, Leon Romanovsky, Jakub Kicinski, Andrew Lunn, "David S. Miller", Eric Dumazet, Paolo Abeni, Andrew Lunn, Rahul Verma, Don Fry, Brett Creeley, Shahed Shaikh, Stefan Wahren, Timur Tabi, Niklas Söderlund, Heiko Carstens, Vasily Gorbik, Alexander Gordeev, Alexandra Winter, Aswin Karuvally, Edward Cree, Maxime Chevallier, Andy Gospodarek, Linus Torvalds, Richard Weinberger, Anton Ivanov, "Michael S. Tsirkin", Jason Wang, Eugenio Pérez, Ronak Doshi, Radhey Shyam Pandey
Status: Superseded by v7 (posted 2021-11-18). [go to v7]
Revision v2 (6 revisions archived).
Revisions (6)
This series add support to set/get tx copybreak buf size and rx buf len via
ethtool and hns3 driver implements them.
Tx copybreak buf size is used for tx copybreak feature which for small size
packet or frag. Use ethtool --get-tunable command to get it, and ethtool
--set-tunable command to set it, examples are as follow:
1. set tx spare buf size to 102400:
$ ethtool --set-tunable eth1 tx-buf-size 102400
2. get tx spare buf size:
$ ethtool --get-tunable eth1 tx-buf-size
tx-buf-size: 102400
Rx buf len is buffer length of each rx BD. Use ethtool -g command to get
it, and ethtool -G command to set it, examples are as follow:
1. set rx buf len to 4096
$ ethtool -G eth1 rx-buf-len 4096
2. get rx buf len
$ ethtool -g eth1
...
RX Buf Len: 4096
Change log:
V1 -> V2
1.Add documentation for rx buf len and tx copybreak buf size.
2.Extend structure ringparam_ext for extenal ring params.
3.Change type of ETHTOOL_A_RINGS_RX_BUF_LEN from NLA_U32 to
NLA_POLICY_MIN(NLA_U32, 1).
4.Add supported_ring_params in ethtool_ops to indicate if support external
params.
Hao Chen (6):
ethtool: add support to set/get tx copybreak buf size via ethtool
net: hns3: add support to set/get tx copybreak buf size via ethtool
for hns3 driver
ethtool: add support to set/get rx buf len via ethtool
ethtool: extend ringparam setting uAPI with rx_buf_len
net: hns3: add support to set/get rx buf len via ethtool for hns3
driver
net: hns3: remove the way to set tx spare buf via module parameter
Documentation/networking/ethtool-netlink.rst | 26 ++++
arch/um/drivers/vector_kern.c | 4 +-
drivers/net/can/c_can/c_can_ethtool.c | 4 +-
drivers/net/ethernet/3com/typhoon.c | 4 +-
drivers/net/ethernet/amazon/ena/ena_ethtool.c | 8 +-
drivers/net/ethernet/amd/pcnet32.c | 8 +-
drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c | 8 +-
.../ethernet/aquantia/atlantic/aq_ethtool.c | 8 +-
drivers/net/ethernet/atheros/atlx/atl1.c | 8 +-
drivers/net/ethernet/broadcom/b44.c | 8 +-
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 16 ++-
drivers/net/ethernet/broadcom/bnx2.c | 8 +-
.../ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 8 +-
.../net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 8 +-
drivers/net/ethernet/broadcom/tg3.c | 10 +-
.../net/ethernet/brocade/bna/bnad_ethtool.c | 8 +-
drivers/net/ethernet/cadence/macb_main.c | 8 +-
.../ethernet/cavium/liquidio/lio_ethtool.c | 8 +-
.../ethernet/cavium/thunder/nicvf_ethtool.c | 8 +-
drivers/net/ethernet/chelsio/cxgb/cxgb2.c | 8 +-
.../net/ethernet/chelsio/cxgb3/cxgb3_main.c | 8 +-
.../ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 8 +-
.../ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 8 +-
.../net/ethernet/cisco/enic/enic_ethtool.c | 8 +-
drivers/net/ethernet/cortina/gemini.c | 8 +-
.../net/ethernet/emulex/benet/be_ethtool.c | 4 +-
drivers/net/ethernet/ethoc.c | 8 +-
drivers/net/ethernet/faraday/ftgmac100.c | 8 +-
.../ethernet/freescale/enetc/enetc_ethtool.c | 4 +-
.../net/ethernet/freescale/gianfar_ethtool.c | 8 +-
.../net/ethernet/freescale/ucc_geth_ethtool.c | 8 +-
drivers/net/ethernet/google/gve/gve_ethtool.c | 4 +-
.../net/ethernet/hisilicon/hns/hns_ethtool.c | 6 +-
.../net/ethernet/hisilicon/hns3/hns3_enet.c | 11 +-
.../net/ethernet/hisilicon/hns3/hns3_enet.h | 2 +
.../ethernet/hisilicon/hns3/hns3_ethtool.c | 116 ++++++++++++++++--
.../net/ethernet/huawei/hinic/hinic_ethtool.c | 8 +-
drivers/net/ethernet/ibm/emac/core.c | 4 +-
drivers/net/ethernet/ibm/ibmvnic.c | 8 +-
drivers/net/ethernet/intel/e100.c | 8 +-
.../net/ethernet/intel/e1000/e1000_ethtool.c | 8 +-
drivers/net/ethernet/intel/e1000e/ethtool.c | 8 +-
.../net/ethernet/intel/fm10k/fm10k_ethtool.c | 8 +-
.../net/ethernet/intel/i40e/i40e_ethtool.c | 8 +-
.../net/ethernet/intel/iavf/iavf_ethtool.c | 12 +-
drivers/net/ethernet/intel/ice/ice_ethtool.c | 8 +-
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 +-
.../net/ethernet/intel/ixgb/ixgb_ethtool.c | 8 +-
.../net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 8 +-
drivers/net/ethernet/intel/ixgbevf/ethtool.c | 8 +-
drivers/net/ethernet/marvell/mv643xx_eth.c | 8 +-
drivers/net/ethernet/marvell/mvneta.c | 8 +-
.../net/ethernet/marvell/mvpp2/mvpp2_main.c | 8 +-
.../marvell/octeontx2/nic/otx2_ethtool.c | 8 +-
drivers/net/ethernet/marvell/skge.c | 8 +-
drivers/net/ethernet/marvell/sky2.c | 8 +-
.../net/ethernet/mellanox/mlx4/en_ethtool.c | 8 +-
.../ethernet/mellanox/mlx5/core/en_ethtool.c | 8 +-
.../net/ethernet/mellanox/mlx5/core/en_rep.c | 8 +-
.../mellanox/mlx5/core/ipoib/ethtool.c | 8 +-
.../mellanox/mlxbf_gige/mlxbf_gige_ethtool.c | 4 +-
drivers/net/ethernet/micrel/ksz884x.c | 5 +-
.../net/ethernet/myricom/myri10ge/myri10ge.c | 4 +-
drivers/net/ethernet/neterion/s2io.c | 4 +-
.../ethernet/netronome/nfp/nfp_net_ethtool.c | 8 +-
drivers/net/ethernet/nvidia/forcedeth.c | 10 +-
.../oki-semi/pch_gbe/pch_gbe_ethtool.c | 10 +-
.../net/ethernet/pasemi/pasemi_mac_ethtool.c | 4 +-
.../ethernet/pensando/ionic/ionic_ethtool.c | 8 +-
.../qlogic/netxen/netxen_nic_ethtool.c | 8 +-
.../net/ethernet/qlogic/qede/qede_ethtool.c | 8 +-
.../ethernet/qlogic/qlcnic/qlcnic_ethtool.c | 8 +-
.../net/ethernet/qualcomm/emac/emac-ethtool.c | 8 +-
drivers/net/ethernet/qualcomm/qca_debug.c | 8 +-
drivers/net/ethernet/realtek/8139cp.c | 4 +-
drivers/net/ethernet/realtek/r8169_main.c | 4 +-
drivers/net/ethernet/renesas/ravb_main.c | 8 +-
drivers/net/ethernet/renesas/sh_eth.c | 8 +-
drivers/net/ethernet/sfc/ef100_ethtool.c | 4 +-
drivers/net/ethernet/sfc/ethtool.c | 8 +-
drivers/net/ethernet/sfc/falcon/ethtool.c | 8 +-
.../ethernet/stmicro/stmmac/stmmac_ethtool.c | 8 +-
drivers/net/ethernet/tehuti/tehuti.c | 10 +-
drivers/net/ethernet/ti/am65-cpsw-ethtool.c | 4 +-
drivers/net/ethernet/ti/cpmac.c | 8 +-
drivers/net/ethernet/ti/cpsw_ethtool.c | 8 +-
drivers/net/ethernet/ti/cpsw_priv.h | 8 +-
.../net/ethernet/toshiba/spider_net_ethtool.c | 4 +-
drivers/net/ethernet/xilinx/ll_temac_main.c | 14 ++-
.../net/ethernet/xilinx/xilinx_axienet_main.c | 14 ++-
drivers/net/hyperv/netvsc_drv.c | 8 +-
drivers/net/netdevsim/ethtool.c | 8 +-
drivers/net/usb/r8152.c | 8 +-
drivers/net/virtio_net.c | 4 +-
drivers/net/vmxnet3/vmxnet3_ethtool.c | 8 +-
drivers/s390/net/qeth_ethtool.c | 4 +-
include/linux/ethtool.h | 18 ++-
include/uapi/linux/ethtool.h | 9 ++
include/uapi/linux/ethtool_netlink.h | 1 +
net/ethtool/common.c | 1 +
net/ethtool/ioctl.c | 10 +-
net/ethtool/netlink.h | 2 +-
net/ethtool/rings.c | 32 ++++-
net/mac80211/ethtool.c | 8 +-
106 files changed, 738 insertions(+), 205 deletions(-)
--
2.33.0