Re: [RT v5.11-rt7] WARNING at include/linux/seqlock.h:271 nft_counter_eval

From: Juri Lelli
Date: Tue Feb 23 2021 - 08:55:27 EST


On 23/02/21 12:00, Sebastian Andrzej Siewior wrote:
> On 2021-02-23 11:49:07 [+0100], Juri Lelli wrote:
> > Hi,
> Hi,
>
> > I'm seeing the following splat right after boot (or during late boot
> > phases) with v5.11-rt7 (LOCKDEP enabled).
>
> > [ 85.273588] WARNING: CPU: 5 PID: 1416 at include/linux/seqlock.h:271 nft_counter_eval+0x95/0x130 [nft_counter]
>
> > [ 85.273713] RIP: 0010:nft_counter_eval+0x95/0x130 [nft_counter]
>
> This is a per-CPU seqcount_t in net/netfilter/nft_counter.c which is
> only protected by local_bh_disabled(). The warning expects preemption
> to be disabled which is the case on !RT but not on RT.
>
> Not sure what to do about this. It is doing anything wrong as of now. It
> is noisy.

So, I'm a bit confused and I'm very likely missing details (still
digesting the seqprop_ magic), but write_seqcount_being() has

if (seqprop_preemptible(s))
preempt_disable();

which in this case (no lock associated) is defined to return false,
while it should return true on RT (or in some occasions)? Or maybe this
is what you are saying already.

Also, the check for preemption been disabled happens before we can
actually potentially disable it, no?

Thanks for the quick reply!

Best,
Juri