[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c3b05efb-e691-4947-84f9-cf524e7d2cd9@paulmck-laptop>
Date: Thu, 6 Apr 2023 08:45:10 -0700
From: "Paul E. McKenney" <paulmck@...nel.org>
To: Jakub Kicinski <kuba@...nel.org>
Cc: Herbert Xu <herbert@...dor.apana.org.au>,
Alexander Duyck <alexander.duyck@...il.com>,
Heiner Kallweit <hkallweit1@...il.com>, davem@...emloft.net,
netdev@...r.kernel.org, edumazet@...gle.com, pabeni@...hat.com
Subject: Re: [PATCH net-next 1/3] net: provide macros for commonly copied
lockless queue stop/wake code
On Thu, Apr 06, 2023 at 07:46:48AM -0700, Jakub Kicinski wrote:
> On Thu, 6 Apr 2023 07:17:09 -0700 Paul E. McKenney wrote:
> > > > Mightn't preemption or interrupts cause further issues? Or are preemption
> > > > and/or interrupts disabled across the relevant sections of code?
> > >
> > > The code in question is supposed to run in softirq context. So
> > > both interrupts and preemption should be disabled.
> >
> > Agreed, preemption will be enabled in softirq, but interrupts can still
> > happen, correct?
>
> Starting the queue only happens from softirq (I hope) and stopping
> can happen from any context. So we're risking false-starts again.
> I think this puts to bed any hope of making this code safe against
> false-starts with just barriers :(
Is it possible to jam all the relevant state into a single variable?
(I believe that that answer is "no", but just in case asking this question
inspires someone to come up with a good idea.)
Thanx, Paul
Powered by blists - more mailing lists