Re: [PATCH 1/2] mm/zsmalloc: don't hold locks of all pages when free_zspage()

From: Sergey Senozhatsky
Date: Wed Feb 28 2024 - 01:14:14 EST


On (24/02/27 03:02), Chengming Zhou wrote:
> @@ -834,13 +841,12 @@ static void __free_zspage(struct zs_pool *pool, struct size_class *class,
> VM_BUG_ON_PAGE(!PageLocked(page), page);
> next = get_next_page(page);
> reset_page(page);

reset_page()->__ClearPageMovable()->PageMovable() expects page to be
locked.

> - unlock_page(page);
> dec_zone_page_state(page, NR_ZSPAGES);
> put_page(page);
> page = next;
> } while (page != NULL);