netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC v1 net-next 0/5] Add tx push buf len param to ethtool
@ 2023-03-01 17:59 Shay Agroskin
  2023-03-01 17:59 ` [PATCH RFC v1 net-next 1/5] ethtool: Add support for configuring tx_push_buf_len Shay Agroskin
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Shay Agroskin @ 2023-03-01 17:59 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

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 (4):
  ethtool: Add support for configuring tx_push_buf_len
  net: ena: Recalculate TX state variables every device reset
  net: ena: Add support to changing tx_push_buf_len
  net: ena: Advertise ETHTOOL_RING_USE_TX_PUSH_BUF_LEN support

 Documentation/networking/ethtool-netlink.rst  |  43 ++++--
 drivers/net/ethernet/amazon/ena/ena_eth_com.h |   4 +
 drivers/net/ethernet/amazon/ena/ena_ethtool.c |  64 +++++++-
 drivers/net/ethernet/amazon/ena/ena_netdev.c  | 145 ++++++++++++++----
 drivers/net/ethernet/amazon/ena/ena_netdev.h  |  17 +-
 include/linux/ethtool.h                       |  14 +-
 include/uapi/linux/ethtool_netlink.h          |   2 +
 net/ethtool/netlink.h                         |   2 +-
 net/ethtool/rings.c                           |  29 +++-
 9 files changed, 256 insertions(+), 64 deletions(-)

-- 
2.25.1


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

end of thread, other threads:[~2023-03-02 17:10 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-01 17:59 [PATCH RFC v1 net-next 0/5] Add tx push buf len param to ethtool Shay Agroskin
2023-03-01 17:59 ` [PATCH RFC v1 net-next 1/5] ethtool: Add support for configuring tx_push_buf_len Shay Agroskin
2023-03-02  4:00   ` Jakub Kicinski
2023-03-02 14:23     ` Shay Agroskin
2023-03-02 17:10       ` Jakub Kicinski
2023-03-01 17:59 ` [PATCH RFC v1 net-next 2/5] net: ena: Add an option to configure large LLQ headers Shay Agroskin
2023-03-01 17:59 ` [PATCH RFC v1 net-next 3/5] net: ena: Recalculate TX state variables every device reset Shay Agroskin
2023-03-01 17:59 ` [PATCH RFC v1 net-next 4/5] net: ena: Add support to changing tx_push_buf_len Shay Agroskin
2023-03-01 18:02 ` [PATCH RFC v1 net-next 5/5] net: ena: Advertise ETHTOOL_RING_USE_TX_PUSH_BUF_LEN support Shay Agroskin
2023-03-02  4:11   ` Jakub Kicinski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).