Message ID | 20250207060448.146606-1-liuye@kylinos.cn (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm/mlock: Fix WARN_ON_ONCE condition. | expand |
On 07/02/25 11:34 am, Liu Ye wrote: > The condition in WARN_ON_ONCE(cpu_online(cpu)) should be !cpu_online(cpu) > to ensure the warning is triggered when the CPU is offline. > > Signed-off-by: Liu Ye <liuye@kylinos.cn> > --- > mm/mlock.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/mlock.c b/mm/mlock.c > index cde076fa7d5e..40acf7897917 100644 > --- a/mm/mlock.c > +++ b/mm/mlock.c > @@ -224,7 +224,7 @@ void mlock_drain_remote(int cpu) > { > struct folio_batch *fbatch; > > - WARN_ON_ONCE(cpu_online(cpu)); > + WARN_ON_ONCE(!cpu_online(cpu)); > fbatch = &per_cpu(mlock_fbatch.fbatch, cpu); > if (folio_batch_count(fbatch)) > mlock_folio_batch(fbatch); No idea about this code path but mlock_drain_remote() is called by page_alloc_cpu_dead() which expects an offlined CPU according to the comments.
On Fri, Feb 07, 2025 at 02:04:48PM +0800, Liu Ye wrote: > The condition in WARN_ON_ONCE(cpu_online(cpu)) should be !cpu_online(cpu) > to ensure the warning is triggered when the CPU is offline. > > Signed-off-by: Liu Ye <liuye@kylinos.cn> NACK. This is a really odd patch to send, if you were right we'd be seeing constant warnings on this no? And as per Dev, this seems completely wrong? You also MUST provide more justification if you're going to do something as crazy as this. An 'it's wrong because I say it is' isn't acceptable on any level whatsoever. > --- > mm/mlock.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/mlock.c b/mm/mlock.c > index cde076fa7d5e..40acf7897917 100644 > --- a/mm/mlock.c > +++ b/mm/mlock.c > @@ -224,7 +224,7 @@ void mlock_drain_remote(int cpu) > { > struct folio_batch *fbatch; > > - WARN_ON_ONCE(cpu_online(cpu)); > + WARN_ON_ONCE(!cpu_online(cpu)); > fbatch = &per_cpu(mlock_fbatch.fbatch, cpu); > if (folio_batch_count(fbatch)) > mlock_folio_batch(fbatch); > -- > 2.25.1 >
diff --git a/mm/mlock.c b/mm/mlock.c index cde076fa7d5e..40acf7897917 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -224,7 +224,7 @@ void mlock_drain_remote(int cpu) { struct folio_batch *fbatch; - WARN_ON_ONCE(cpu_online(cpu)); + WARN_ON_ONCE(!cpu_online(cpu)); fbatch = &per_cpu(mlock_fbatch.fbatch, cpu); if (folio_batch_count(fbatch)) mlock_folio_batch(fbatch);
The condition in WARN_ON_ONCE(cpu_online(cpu)) should be !cpu_online(cpu) to ensure the warning is triggered when the CPU is offline. Signed-off-by: Liu Ye <liuye@kylinos.cn> --- mm/mlock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)