mm/mlock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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);
--
2.25.1
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
>
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.
© 2016 - 2026 Red Hat, Inc.