[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250428113845.543ca2b8@kernel.org>
Date: Mon, 28 Apr 2025 11:38:45 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: Joe Damato <jdamato@...tly.com>
Cc: Willem de Bruijn <willemdebruijn.kernel@...il.com>, Samiullah Khawaja
<skhawaja@...gle.com>, "David S . Miller" <davem@...emloft.net>, Eric
Dumazet <edumazet@...gle.com>, Paolo Abeni <pabeni@...hat.com>,
almasrymina@...gle.com, willemb@...gle.com, mkarsten@...terloo.ca,
netdev@...r.kernel.org
Subject: Re: [PATCH net-next v5] Add support to set napi threaded for
individual napi
On Mon, 28 Apr 2025 11:12:34 -0700 Joe Damato wrote:
> On Sat, Apr 26, 2025 at 10:41:10AM -0400, Willem de Bruijn wrote:
> > > Anyway: I have a preference for consistency
> >
> > +1
> >
> > I don't think either solution is vastly better than the other, as
> > long as it is the path of least surprise. Different behavior for
> > different options breaks that rule.
>
> I agree and my feedback on the previous revision was that all NAPI
> config settings should work similarly. Whether that's what I already
> implemented for defer-hard-irq/gro-flush-timeout or something else I
> don't really have a strong preference.
>
> Implementing something other than what already exists for
> defer-hard-irq/gro-flush-timeout, though, would probably mean you'll
> need to update how both of those work, for consistency.
Nobody will disagree with consistency being good. The question is how
broadly you define the scope :) If you say 'all settings within
napi-set' that's one level of consistency, if you say 'all netdev
netlink' then the picture is less clear.
> > This also reminds me of /proc/sys/net/ipv4/conf/{all, default, .. }
> > API. Which confuses me to this day.
Indeed. That scheme has the additional burden of not being consistently
enforced :/ So I'm trying to lay down some rules (in the doc linked
upthread).
The concern I have with the write all semantics is what happens when
we delegate the control over a queue / NAPI to some application or
container. Is the expectation that some user space component prevents
the global settings from being re-applied when applications using
dedicated queues / NAPIs are running?
Second, more minor concern is that we expose all settings on all
sub-objects which I find slightly less clear for the admin. It's much
harder to tell at a glance which settings are overrides and which one
was the default.
Powered by blists - more mailing lists