Re: [PATCH] mm: page_alloc: Remove redundant READ_ONCE

From: Huang, Ying
Date: Wed Apr 02 2025 - 04:30:39 EST


Songtang Liu <liusongtang@xxxxxxxxxxxxx> writes:

> In the current code, batch is a local variable, and it cannot be
> concurrently modified. It's unnecessary to use READ_ONCE here,
> so remove it.
>
> Fixes: 51a755c56dc0 ("mm: tune PCP high automatically")
> Signed-off-by: Songtang Liu <liusongtang@xxxxxxxxxxxxx>
> ---
> mm/page_alloc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index e3ea5bf5c459..6edc6e57d4f8 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -2661,7 +2661,7 @@ static void free_frozen_page_commit(struct zone *zone,
> free_high = (pcp->free_count >= batch &&
> (pcp->flags & PCPF_PREV_FREE_HIGH_ORDER) &&
> (!(pcp->flags & PCPF_FREE_HIGH_BATCH) ||
> - pcp->count >= READ_ONCE(batch)));
> + pcp->count >= batch));

Nice catch!

Reviewed-by: Huang Ying <ying.huang@xxxxxxxxxxxxxxxxx>

> pcp->flags |= PCPF_PREV_FREE_HIGH_ORDER;
> } else if (pcp->flags & PCPF_PREV_FREE_HIGH_ORDER) {
> pcp->flags &= ~PCPF_PREV_FREE_HIGH_ORDER;

---
Best Regards,
Huang, Ying