[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Y+p8WZCPKhp4/RIH@lunn.ch>
Date: Mon, 13 Feb 2023 19:07:21 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Alexander Lobakin <alexandr.lobakin@...el.com>
Cc: wei.fang@....com, shenwei.wang@....com, xiaoning.wang@....com,
davem@...emloft.net, edumazet@...gle.com, kuba@...nel.org,
pabeni@...hat.com, simon.horman@...igine.com,
netdev@...r.kernel.org, linux-imx@....com,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH V2 net-next] net: fec: add CBS offload support
On Mon, Feb 13, 2023 at 06:44:05PM +0100, Alexander Lobakin wrote:
> From: Andrew Lunn <andrew@...n.ch>
> Date: Mon, 13 Feb 2023 17:21:43 +0100
>
> >>> + if (!speed) {
> >>> + netdev_err(ndev, "Link speed is 0!\n");
> >>
> >> ??? Is this possible? If so, why is it checked only here and why can it
> >> be possible?
> >
> > The obvious way this happens is that there is no link partner, so
> > auto-neg has not completed yet. The link speed is unknown.
>
> Sure, but why treat it an error path then?
You need to treat is somehow. I would actually disagree with
netdev_err(), netdev_dbg() seems more appropriate. But if you don't
know the link speed, you cannot program the scheduler.
This also comes back to my question about what should happen with a TC
configuration which works fine for 1000BaseT, but will not work for
10BaseT. Should the driver accept it only if the current link speed is
sufficient? Should it always accept it, and not program it into the
hardware if the current link speed does not support it?
Since we are talking about hardware acceleration here, what does the
pure software version do? Ideally we want the accelerated version to
do the same as the software version.
Wei, please disable all clever stuff in the hardware, setup a pure
software qdisc and a 10BaseT link. Oversubscribe the link and see what
happens. Does other traffic get starved?
Andrew
Powered by blists - more mailing lists