All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andre Guedes <andre.guedes@linux.intel.com>
To: "alexandru.ardelean@analog.com" <alexandru.ardelean@analog.com>,
	"allison@lohutok.net" <allison@lohutok.net>,
	"andrew@lunn.ch" <andrew@lunn.ch>,
	"ayal@mellanox.com" <ayal@mellanox.com>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"f.fainelli@gmail.com" <f.fainelli@gmail.com>,
	"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	"hauke.mehrtens@intel.com" <hauke.mehrtens@intel.com>,
	"hkallweit1@gmail.com" <hkallweit1@gmail.com>,
	"jiri@mellanox.com" <jiri@mellanox.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"pablo@netfilter.org" <pablo@netfilter.org>,
	"saeedm@mellanox.com" <saeedm@mellanox.com>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>,
	Murali Karicheri <m-karicheri2@ti.com>, Po Liu <po.liu@nxp.com>,
	Vinicius Costa Gomes <vinicius.gomes@intel.com>,
	Vladimir Oltean <vladimir.oltean@nxp.com>
Cc: "simon.horman@netronome.com" <simon.horman@netronome.com>,
	Claudiu Manoil <claudiu.manoil@nxp.com>,
	Vladimir Oltean <vladimir.oltean@nxp.com>,
	Alexandru Marginean <alexandru.marginean@nxp.com>,
	Xiaoliang Yang <xiaoliang.yang_1@nxp.com>,
	Roy Zang <roy.zang@nxp.com>, Mingkai Hu <mingkai.hu@nxp.com>,
	Jerry Huang <jerry.huang@nxp.com>, Leo Li <leoyang.li@nxp.com>
Subject: RE: [EXT] Re: [v1,net-next, 1/2] ethtool: add setting frame preemption of traffic classes
Date: Wed, 08 Jan 2020 16:56:55 -0800	[thread overview]
Message-ID: <157853141533.36295.15469390811167798190@aguedesl-mac01.jf.intel.com> (raw)
In-Reply-To: <87eex43pzm.fsf@linux.intel.com>

Hi,

Quoting Vinicius Costa Gomes (2019-12-16 13:44:13)
> >> Quoting Po Liu (2019-11-27 01:59:18)
> >> > User can check the feature 'tx-preemption' by command 'ethtool -k
> >> > devname'. If hareware set preemption feature. The property would be a
> >> > fixed value 'on' if hardware support the frame preemption.
> >> > Feature would show a fixed value 'off' if hardware don't support the
> >> > frame preemption.
> 
> Having some knobs in ethtool to enable when/how Frame Preemption is
> advertised on the wire makes sense. I also agree that it should be "on"
> by default.

Agreed. If Frame Preemption is supported by hardware and it can be
enabled/disabled, I think we should allow the user to configure it, instead of
having it fixed in 'on'.

> >> In an early RFC series [1], we proposed a way to support frame preemption. I'm
> >> not sure if you have considered it before implementing this other proposal
> >> based on ethtool interface so I thought it would be a good idea to bring that up
> >> to your attention, just in case.
> >  
> > Sorry, I didn't notice the RFC proposal. Using ethtool set the
> > preemption just thinking about 8021Qbu as standalone. And not limit to
> > the taprio if user won't set 802.1Qbv.
> 
> I see your point of using frame-preemption "standalone", I have two
> ideas:
> 
>  1. add support in taprio to be configured without any schedule in the
>  "full offload" mode. In practice, allowing taprio to work somewhat
>  similar to (mqprio + frame-preemption), changes in the code should de
>  fairly small;
> 
>  2. extend mqprio to support frame-preemption;

I'm not sure 2) is a good way to support frame preemption "standalone"
functionality since mpqrio already looks overloaded. Besides its original goal
(map traffic flows to hardware queues), it also supports different modes and
traffic shaping. I rather not add another functionality to it.

> > As some feedback  also want to set the MAC merge minimal fragment size
> > and get some more information of 802.3br.
> 
> The minimal fragment size, I guess, also makes sense to be kept in
> ethtool. That is we have a sane default, and allow the user to change
> this setting for special cases.

Yes, the mim fragment size is another configuration knob we should have, and it
should probably live at the same place we land the enable/disable knob.

> >> It also aligns with the gate control operations Set-And-Hold-MAC and Set-And-
> >> Release-MAC that can be set via 'sched-entry' (see Table 8.7 from
> >> 802.1Q-2018 for further details.
> >  
> > I am curious about Set-And-Hold-Mac via 'sched-entry'. Actually, it
> > could be understand as guardband by hardware preemption. MAC should
> > auto calculate the nano seconds before  express entry slot start to
> > break to two fragments. Set-And-Hold-MAC should minimal larger than
> > the fragment-size oct times.
> 
> Another interesting point. My first idea is that when the schedule is
> offloaded to the driver and the driver detects that the "entry" width is
> smaller than the fragment side, the driver could reject that schedule
> with a nice error message.

My understanding is that, if HOLD operation is supported, the hardware issues
an MM_CTL.request(HOLD) at 'holdAdvance' nsecs in advance to the point where
the 'sched-entry' with Set-And-Hold-MAC starts. This comes from the description
in Table 8-7 from 802.1Q-2018.

Best regards,

Andre

  parent reply	other threads:[~2020-01-09  0:56 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-27  9:59 [v1,net-next, 1/2] ethtool: add setting frame preemption of traffic classes Po Liu
2019-11-27  9:59 ` [v1,net-next, 2/2] enetc: implement the enetc 802.1Qbu hardware function Po Liu
2019-11-27 11:00   ` Vladimir Oltean
2019-12-04  1:35   ` Ivan Khoronzhuk
2019-11-27 18:57 ` [v1,net-next, 1/2] ethtool: add setting frame preemption of traffic classes David Miller
2019-12-03 15:11 ` Ivan Khoronzhuk
2019-12-11  2:52 ` Andre Guedes
2019-12-16  7:43   ` [EXT] " Po Liu
2019-12-16 21:44     ` Vinicius Costa Gomes
2019-12-19  0:43       ` Ivan Khoronzhuk
2019-12-19  1:54         ` Vinicius Costa Gomes
2019-12-30 16:56           ` Murali Karicheri
2020-01-17 23:47             ` Vinicius Costa Gomes
2019-12-30 17:03           ` Murali Karicheri
2020-01-09  1:07             ` Andre Guedes
2020-01-09  8:59               ` Jose Abreu
2020-01-09 18:04                 ` Andre Guedes
2020-01-10 14:35                   ` Jose Abreu
2020-01-10 16:02               ` Vladimir Oltean
2020-01-10 20:59                 ` Andre Guedes
2020-01-09  0:56       ` Andre Guedes [this message]
2020-01-18  0:03 ` Vinicius Costa Gomes
2020-01-22 18:10   ` Murali Karicheri
2020-01-23 13:30     ` Vladimir Oltean
2020-01-23 17:50       ` Vinicius Costa Gomes
2020-02-10 20:30         ` Murali Karicheri
2020-02-11 19:22           ` Vinicius Costa Gomes
2020-02-25 17:55             ` Murali Karicheri
2020-02-10 20:17       ` Murali Karicheri
2020-02-21 21:43 ` Vinicius Costa Gomes
2020-02-22  3:26   ` [EXT] " Po Liu
2020-02-25 17:59     ` Murali Karicheri
2020-02-25 17:59       ` Murali Karicheri
2020-02-26  2:01       ` Po Liu
2020-03-12 23:34     ` Vinicius Costa Gomes
2020-03-13  6:00       ` Po Liu
2020-03-18 14:07       ` Murali Karicheri
2020-05-13 14:55         ` Murali Karicheri
2020-05-13 17:21           ` 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=157853141533.36295.15469390811167798190@aguedesl-mac01.jf.intel.com \
    --to=andre.guedes@linux.intel.com \
    --cc=alexandru.ardelean@analog.com \
    --cc=alexandru.marginean@nxp.com \
    --cc=allison@lohutok.net \
    --cc=andrew@lunn.ch \
    --cc=ayal@mellanox.com \
    --cc=claudiu.manoil@nxp.com \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hauke.mehrtens@intel.com \
    --cc=hkallweit1@gmail.com \
    --cc=ivan.khoronzhuk@linaro.org \
    --cc=jerry.huang@nxp.com \
    --cc=jiri@mellanox.com \
    --cc=leoyang.li@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m-karicheri2@ti.com \
    --cc=mingkai.hu@nxp.com \
    --cc=netdev@vger.kernel.org \
    --cc=pablo@netfilter.org \
    --cc=po.liu@nxp.com \
    --cc=roy.zang@nxp.com \
    --cc=saeedm@mellanox.com \
    --cc=simon.horman@netronome.com \
    --cc=tglx@linutronix.de \
    --cc=vinicius.gomes@intel.com \
    --cc=vladimir.oltean@nxp.com \
    --cc=xiaoliang.yang_1@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 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.