[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <DB7PR04MB5017DD1C470A06A66ADBB5DEF8579@DB7PR04MB5017.eurprd04.prod.outlook.com>
Date: Fri, 7 May 2021 11:26:32 +0000
From: "Y.b. Lu" <yangbo.lu@....com>
To: Tobias Waldekranz <tobias@...dekranz.com>,
Vladimir Oltean <vladimir.oltean@....com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
CC: Richard Cochran <richardcochran@...il.com>,
"David S . Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Jonathan Corbet <corbet@....net>,
Kurt Kanzenbach <kurt@...utronix.de>,
Andrew Lunn <andrew@...n.ch>,
Vivien Didelot <vivien.didelot@...il.com>,
Florian Fainelli <f.fainelli@...il.com>,
Claudiu Manoil <claudiu.manoil@....com>,
Alexandre Belloni <alexandre.belloni@...tlin.com>,
"UNGLinuxDriver@...rochip.com" <UNGLinuxDriver@...rochip.com>,
"linux-doc@...r.kernel.org" <linux-doc@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [net-next, v2, 3/7] net: dsa: free skb->cb usage in core driver
> -----Original Message-----
> From: Tobias Waldekranz <tobias@...dekranz.com>
> Sent: 2021年4月29日 4:30
> To: Y.b. Lu <yangbo.lu@....com>; netdev@...r.kernel.org
> Cc: Y.b. Lu <yangbo.lu@....com>; Richard Cochran
> <richardcochran@...il.com>; Vladimir Oltean <vladimir.oltean@....com>;
> David S . Miller <davem@...emloft.net>; Jakub Kicinski <kuba@...nel.org>;
> Jonathan Corbet <corbet@....net>; Kurt Kanzenbach <kurt@...utronix.de>;
> Andrew Lunn <andrew@...n.ch>; Vivien Didelot <vivien.didelot@...il.com>;
> Florian Fainelli <f.fainelli@...il.com>; Claudiu Manoil
> <claudiu.manoil@....com>; Alexandre Belloni
> <alexandre.belloni@...tlin.com>; UNGLinuxDriver@...rochip.com;
> linux-doc@...r.kernel.org; linux-kernel@...r.kernel.org
> Subject: Re: [net-next, v2, 3/7] net: dsa: free skb->cb usage in core driver
>
> On Mon, Apr 26, 2021 at 17:37, Yangbo Lu <yangbo.lu@....com> wrote:
> > Free skb->cb usage in core driver and let device drivers decide to use
> > or not. The reason having a DSA_SKB_CB(skb)->clone was because
> > dsa_skb_tx_timestamp() which may set the clone pointer was called
> > before p->xmit() which would use the clone if any, and the device
> > driver has no way to initialize the clone pointer.
> >
> > Although for now putting memset(skb->cb, 0, 48) at beginning of
> > dsa_slave_xmit() by this patch is not very good, there is still way to
> > improve this. Otherwise, some other new features, like one-step
>
> Could you please expand on this improvement?
>
> This memset makes it impossible to carry control buffer information from
> driver callbacks that run before .ndo_start_xmit, for
> example .ndo_select_queue, to a tagger's .xmit.
>
> It seems to me that if the drivers are to handle the CB internally from now on,
> that should go for both setting and clearing of the required fields.
>
For the timestamping case, dsa_skb_tx_timestamp may not touch .port_txtstamp callback, so we had to put skb->cb initialization at beginning of dsa_slave_xmit.
To avoid breaking future skb->cb usage you mentioned, do you think we can back to Vladimir's idea initializing only field required, or even just add a callback for cb initialization for timestamping?
Thanks.
> > timestamp which needs a flag of skb marked in dsa_skb_tx_timestamp(),
> > and handles as one-step timestamp in p->xmit() will face same
> > situation.
> >
> > Signed-off-by: Yangbo Lu <yangbo.lu@....com>
Powered by blists - more mailing lists