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

From: Chengming Zhou
Date: Wed Feb 28 2024 - 01:49:26 EST


On 2024/2/28 14:14, Sergey Senozhatsky wrote:
> 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.

This seems to make the patch doesn't work anymore... will think about it.

Thanks!

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