Re: [PATCH] mm/page_alloc: Fix incorrect PGFREE and PGALLOC for high-order page

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2022/10/6 18:15, Yafang Shao wrote:
> PGFREE and PGALLOC represent the number of freed and allocated pages.
> So the page order must be considered.
> 
> Fixes: 44042b449872 ("mm/page_alloc: allow high-order pages to be stored on the per-cpu lists")
> Signed-off-by: Yafang Shao <laoar.shao@xxxxxxxxx>

LGTM. Thanks for fixing.

Reviewed-by: Miaohe Lin <linmiaohe@xxxxxxxxxx>

Thanks,
Miaohe Lin

> Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
> ---
>  mm/page_alloc.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index e5486d4..3c0ee3b 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -3440,7 +3440,7 @@ static void free_unref_page_commit(struct zone *zone, struct per_cpu_pages *pcp,
>  	int pindex;
>  	bool free_high;
>  
> -	__count_vm_event(PGFREE);
> +	__count_vm_events(PGFREE, 1 << order);
>  	pindex = order_to_pindex(migratetype, order);
>  	list_add(&page->pcp_list, &pcp->lists[pindex]);
>  	pcp->count += 1 << order;
> @@ -3808,7 +3808,7 @@ static struct page *rmqueue_pcplist(struct zone *preferred_zone,
>  	pcp_spin_unlock_irqrestore(pcp, flags);
>  	pcp_trylock_finish(UP_flags);
>  	if (page) {
> -		__count_zid_vm_events(PGALLOC, page_zonenum(page), 1);
> +		__count_zid_vm_events(PGALLOC, page_zonenum(page), 1 << order);
>  		zone_statistics(preferred_zone, zone, 1);
>  	}
>  	return page;
> 





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux