Re: [PATCH 10/11] mm/page_alloc: Update PGFREE outside the zone lock in __free_pages_ok

From: Vlastimil Babka
Date: Thu Apr 15 2021 - 09:04:42 EST


On 4/14/21 3:39 PM, Mel Gorman wrote:
> VM events do not need explicit protection by disabling IRQs so
> update the counter with IRQs enabled in __free_pages_ok.
>
> Signed-off-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>

Acked-by: Vlastimil Babka <vbabka@xxxxxxx>

> ---
> mm/page_alloc.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index a0b210077178..8a94fe77bef7 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -1569,10 +1569,11 @@ static void __free_pages_ok(struct page *page, unsigned int order,
> migratetype = get_pfnblock_migratetype(page, pfn);
>
> spin_lock_irqsave(&zone->lock, flags);
> - __count_vm_events(PGFREE, 1 << order);
> migratetype = check_migratetype_isolated(zone, page, pfn, migratetype);
> __free_one_page(page, pfn, zone, order, migratetype, fpi_flags);
> spin_unlock_irqrestore(&zone->lock, flags);
> +
> + __count_vm_events(PGFREE, 1 << order);
> }
>
> void __free_pages_core(struct page *page, unsigned int order)
>