All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 net-next 0/6] Add tx push buf len param to ethtool
@ 2023-03-16 14:27 Shay Agroskin
  2023-03-16 14:27 ` [PATCH v5 net-next 1/6] ethtool: Add support for configuring tx_push_buf_len Shay Agroskin
                   ` (6 more replies)
  0 siblings, 7 replies; 9+ messages in thread
From: Shay Agroskin @ 2023-03-16 14:27 UTC (permalink / raw)
  To: David Miller, Jakub Kicinski, netdev
  Cc: Shay Agroskin, Woodhouse, David, Machulsky, Zorik, Matushevsky,
	Alexander, Saeed Bshara, Wilson, Matt, Liguori, Anthony, Bshara,
	Nafea, Belgazal, Netanel, Saidi, Ali, Herrenschmidt, Benjamin,
	Kiyanovski, Arthur, Dagan, Noam, Arinzon, David, Itzko, Shahar,
	Abboud, Osama

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(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-03-16 20:01 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-16 14:27 [PATCH v5 net-next 0/6] Add tx push buf len param to ethtool Shay Agroskin
2023-03-16 14:27 ` [PATCH v5 net-next 1/6] ethtool: Add support for configuring tx_push_buf_len Shay Agroskin
2023-03-16 19:56   ` Michal Kubiak
2023-03-16 14:27 ` [PATCH v5 net-next 2/6] net: ena: Make few cosmetic preparations to support large LLQ Shay Agroskin
2023-03-16 14:27 ` [PATCH v5 net-next 3/6] net: ena: Add an option to configure large LLQ headers Shay Agroskin
2023-03-16 14:27 ` [PATCH v5 net-next 4/6] net: ena: Recalculate TX state variables every device reset Shay Agroskin
2023-03-16 14:27 ` [PATCH v5 net-next 5/6] net: ena: Add support to changing tx_push_buf_len Shay Agroskin
2023-03-16 14:27 ` [PATCH v5 net-next 6/6] net: ena: Advertise TX push support Shay Agroskin
2023-03-16 19:59 ` [PATCH v5 net-next 0/6] Add tx push buf len param to ethtool Michal Kubiak

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.