Re: [PATCHv4 0/4] zsmalloc: fine-grained fullness and new compaction algorithm

From: Yu Zhao
Date: Sun Apr 16 2023 - 03:21:43 EST


On Fri, Mar 3, 2023 at 8:48 PM Sergey Senozhatsky
<senozhatsky@xxxxxxxxxxxx> wrote:
>
> Hi,
>
> Existing zsmalloc page fullness grouping leads to suboptimal page
> selection for both zs_malloc() and zs_compact(). This patchset
> reworks zsmalloc fullness grouping/classification.
>
> Additinally it also implements new compaction algorithm that is
> expected to use less CPU-cycles (as it potentially does fewer
> memcpy-s in zs_object_copy()).
>
> Test (synthetic) results can be seen in patch 0003.

Seeing the following crashes from mm-unstable. Please take a look. Thanks.

list_add corruption. next is NULL.
kernel BUG at lib/list_debug.c:26!
Call Trace:
<TASK>
zs_compact+0xbf6/0xda0
zs_shrinker_scan+0x19/0x30
do_shrink_slab+0x1ac/0x450
shrink_slab+0xdc/0x3d0
shrink_one+0xe2/0x1d0
shrink_node+0xc7f/0xea0
do_try_to_free_pages+0x1b5/0x500
try_to_free_pages+0x396/0x5d0
__alloc_pages_slowpath+0x5d0/0x1030
__alloc_pages+0x1de/0x280
__folio_alloc+0x1e/0x40
vma_alloc_folio+0x4c0/0x530
shmem_alloc_and_acct_folio+0x1a6/0x3b0
shmem_get_folio_gfp+0x689/0xf00
shmem_fault+0x81/0x240