Message ID | 20230316142706.4046263-1-shayagr@amazon.com (mailing list archive) |
---|---|
Headers | show |
Series | Add tx push buf len param to ethtool | expand |
On Thu, Mar 16, 2023 at 04:27:00PM +0200, Shay Agroskin wrote: > Changed since v4: > - Added advertisement for tx-push-mode in ENA driver > - Modified the documentation to make the distinction from > tx-copybreak clearer > > Changes since v3: > - Removed RFC tag and added a Jakub's signoff on one of the first patch > > Changes since v2: > - Added a check that the driver advertises support for TX push buffer > instead of defaulting the response to 0. > - Moved cosmetic changes to their own commits > - Removed usage of gotos which goes against Linux coding style > - Make ENA driver reject an attempt to configure TX push buffer when > it's not supported (no LLQ is used) > > Changes since v1: > - Added the new ethtool param to generic netlink specs > - Dropped dynamic advertisement of tx push buff support in ENA. > The driver will advertise it for all platforms > > This patchset adds a new sub-configuration to ethtool get/set queue > params (ethtool -g) called 'tx-push-buf-len'. > > This configuration specifies the maximum number of bytes of a > transmitted packet a driver can push directly to the underlying > device ('push' mode). The motivation for pushing some of the bytes to > the device has the advantages of > > - Allowing a smart device to take fast actions based on the packet's > header > - Reducing latency for small packets that can be copied completely into > the device > > This new param is practically similar to tx-copybreak value that can be > set using ethtool's tunable but conceptually serves a different purpose. > While tx-copybreak is used to reduce the overhead of DMA mapping and > makes no sense to use if less than the whole segment gets copied, > tx-push-buf-len allows to improve performance by analyzing the packet's > data (usually headers) before performing the DMA operation. > > The configuration can be queried and set using the commands: > > $ ethtool -g [interface] > > # ethtool -G [interface] tx-push-buf-len [number of bytes] > > This patchset also adds support for the new configuration in ENA driver > for which this parameter ensures efficient resources management on the > device side. > > David Arinzon (1): > net: ena: Add an option to configure large LLQ headers > > Shay Agroskin (5): > ethtool: Add support for configuring tx_push_buf_len > net: ena: Make few cosmetic preparations to support large LLQ > net: ena: Recalculate TX state variables every device reset > net: ena: Add support to changing tx_push_buf_len > net: ena: Advertise TX push support > > Documentation/netlink/specs/ethtool.yaml | 8 + > Documentation/networking/ethtool-netlink.rst | 47 ++-- > drivers/net/ethernet/amazon/ena/ena_eth_com.h | 4 + > drivers/net/ethernet/amazon/ena/ena_ethtool.c | 66 ++++- > drivers/net/ethernet/amazon/ena/ena_netdev.c | 259 +++++++++++------- > drivers/net/ethernet/amazon/ena/ena_netdev.h | 15 +- > include/linux/ethtool.h | 14 +- > include/uapi/linux/ethtool_netlink.h | 2 + > net/ethtool/netlink.h | 2 +- > net/ethtool/rings.c | 33 ++- > 10 files changed, 326 insertions(+), 124 deletions(-) > The series looks very good to me. Thanks, Michal For the series. Reviewed-by: Michal Kubiak <michal.kubiak@intel.com> > -- > 2.25.1 >