From: Michael Walle <michael@walle.cc>
To: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Cc: jeffrey.t.kirsher@intel.com, netdev@vger.kernel.org,
vladimir.oltean@nxp.com, po.liu@nxp.com, m-karicheri2@ti.com,
Jose.Abreu@synopsys.com
Subject: Re: [next-queue RFC 0/4] ethtool: Add support for frame preemption
Date: Sun, 17 May 2020 17:06:01 +0200 [thread overview]
Message-ID: <20200517170601.31832446@apollo> (raw)
In-Reply-To: <20200516012948.3173993-1-vinicius.gomes@intel.com>
Am Fri, 15 May 2020 18:29:44 -0700
schrieb Vinicius Costa Gomes <vinicius.gomes@intel.com>:
> Hi,
>
> This series adds support for configuring frame preemption, as defined
> by IEEE 802.1Q-2018 (previously IEEE 802.1Qbu) and IEEE 802.3br.
>
> Frame preemption allows a packet from a higher priority queue marked
> as "express" to preempt a packet from lower priority queue marked as
> "preemptible". The idea is that this can help reduce the latency for
> higher priority traffic.
>
> Previously, the proposed interface for configuring these features was
> using the qdisc layer. But as this is very hardware dependent and all
> that qdisc did was pass the information to the driver, it makes sense
> to have this in ethtool.
>
> One example, for retrieving and setting the configuration:
>
> $ ethtool $ sudo ./ethtool --show-frame-preemption enp3s0
> Frame preemption settings for enp3s0:
> support: supported
> active: active
> supported queues: 0xf
> supported queues: 0xe
> minimum fragment size: 68
>
>
> $ ethtool --set-frame-preemption enp3s0 fp on min-frag-size 68
> preemptible-queues-mask 0xe
>
> This is a RFC because I wanted to have feedback on some points:
>
> - The parameters added are enough for the hardware I have, is it
> enough in general?
What about the Qbu handshake state? And some NICs support overriding
this. I.e. enable frame preemption even if the handshake wasn't
successful.
-michael
>
> - even with the ethtool via netlink effort, I chose to keep the
> ioctl() way, in case someone wants to backport this to an older
> kernel, is there a problem with this?
>
> - Some space for bikeshedding the names and location (for example,
> does it make sense for these settings to be per-queue?), as I am
> not quite happy with them, one example, is the use of preemptible
> vs. preemptable;
>
>
> About the patches, should be quite straightforward:
>
> Patch 1, adds the ETHTOOL_GFP and ETHOOL_SFP commands and the
> associated data structures;
>
> Patch 2, adds the ETHTOOL_MSG_PREEMPT_GET and ETHTOOL_MSG_PREEMPT_SET
> netlink messages and the associated attributes;
>
> Patch 3, is the example implementation for the igc driver, the catch
> here is that frame preemption in igc is dependent on the TSN "mode"
> being enabled;
>
> Patch 4, adds some registers that helped during implementation.
>
> Another thing is that because igc is still under development, to avoid
> conflicts, I think it might be easier for the PATCH version of this
> series to go through Jeff Kirsher's tree.
>
> Vinicius Costa Gomes (4):
> ethtool: Add support for configuring frame preemption
> ethtool: Add support for configuring frame preemption via netlink
> igc: Add support for configuring frame preemption
> igc: Add support for exposing frame preemption stats registers
>
> drivers/net/ethernet/intel/igc/igc.h | 3 +
> drivers/net/ethernet/intel/igc/igc_defines.h | 6 +
> drivers/net/ethernet/intel/igc/igc_ethtool.c | 77 ++++++++
> drivers/net/ethernet/intel/igc/igc_regs.h | 10 +
> drivers/net/ethernet/intel/igc/igc_tsn.c | 46 ++++-
> include/linux/ethtool.h | 6 +
> include/uapi/linux/ethtool.h | 25 +++
> include/uapi/linux/ethtool_netlink.h | 19 ++
> net/ethtool/Makefile | 3 +-
> net/ethtool/ioctl.c | 36 ++++
> net/ethtool/netlink.c | 15 ++
> net/ethtool/netlink.h | 2 +
> net/ethtool/preempt.c | 181
> +++++++++++++++++++ 13 files changed, 423 insertions(+), 6
> deletions(-) create mode 100644 net/ethtool/preempt.c
>
next prev parent reply other threads:[~2020-05-17 15:06 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-16 1:29 [next-queue RFC 0/4] ethtool: Add support for frame preemption Vinicius Costa Gomes
2020-05-16 1:29 ` [next-queue RFC 1/4] ethtool: Add support for configuring " Vinicius Costa Gomes
2020-05-19 15:27 ` Murali Karicheri
2020-05-16 1:29 ` [next-queue RFC 2/4] ethtool: Add support for configuring frame preemption via netlink Vinicius Costa Gomes
2020-05-16 1:29 ` [next-queue RFC 3/4] igc: Add support for configuring frame preemption Vinicius Costa Gomes
2020-05-19 16:36 ` Murali Karicheri
2020-05-16 1:29 ` [next-queue RFC 4/4] igc: Add support for exposing frame preemption stats registers Vinicius Costa Gomes
2020-05-20 12:50 ` Murali Karicheri
2020-05-16 9:33 ` [next-queue RFC 0/4] ethtool: Add support for frame preemption Michal Kubecek
2020-05-18 19:34 ` Vinicius Costa Gomes
2020-05-19 22:40 ` Andre Guedes
2020-05-19 22:53 ` Vinicius Costa Gomes
2020-05-16 20:37 ` David Miller
2020-05-16 21:03 ` Vladimir Oltean
2020-05-16 22:19 ` David Miller
2020-05-17 10:51 ` Vladimir Oltean
2020-05-17 18:45 ` Andrew Lunn
2020-05-17 19:04 ` Vladimir Oltean
2020-05-18 19:05 ` Vinicius Costa Gomes
2020-05-18 20:56 ` Jakub Kicinski
2020-05-18 22:06 ` Vinicius Costa Gomes
2020-05-18 22:22 ` Jakub Kicinski
2020-05-18 23:05 ` Vinicius Costa Gomes
2020-05-18 23:09 ` Jakub Kicinski
2020-05-20 21:42 ` [Intel-wired-lan] " Andre Guedes
2020-05-20 22:35 ` Vinicius Costa Gomes
2020-05-19 16:34 ` Murali Karicheri
2020-05-19 17:49 ` Vinicius Costa Gomes
2020-05-17 15:06 ` Michael Walle [this message]
2020-05-18 13:36 ` Murali Karicheri
2020-05-19 20:41 ` Michael Walle
2020-05-19 14:53 ` Murali Karicheri
2020-05-19 15:32 ` Vinicius Costa Gomes
2020-05-19 16:11 ` Murali Karicheri
2020-05-19 22:39 ` Andre Guedes
2020-05-19 23:37 ` Vinicius Costa Gomes
2020-05-20 12:47 ` Murali Karicheri
2020-05-20 12:52 ` Joergen Andreasen
2020-05-20 21:32 ` Vinicius Costa Gomes
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200517170601.31832446@apollo \
--to=michael@walle.cc \
--cc=Jose.Abreu@synopsys.com \
--cc=jeffrey.t.kirsher@intel.com \
--cc=m-karicheri2@ti.com \
--cc=netdev@vger.kernel.org \
--cc=po.liu@nxp.com \
--cc=vinicius.gomes@intel.com \
--cc=vladimir.oltean@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).