Hi, Kazu

On my side, I still got the following error after applying the patch:

crash> files -p ffff8ea84c130938
     INODE        NRPAGES
ffff8ea84c130938    63375

      PAGE        PHYSICAL      MAPPING       INDEX CNT FLAGS
fffff5168860d000 218340000 ffff8ea84c130ab0        0  5 17ffffc0012076 referenced,uptodate,lru,active,workingset,private,head
files: do_xarray: callback operation failed: entry: 1  item: 0

Am I missing anything else?

Thanks
Lianbo


On Wed, Nov 22, 2023 at 1:02 PM HAGIO KAZUHITO(萩尾 一仁) <k-hagio-ab@nec.com> wrote:
On 2023/11/21 17:42, Johan.Erlandsson@sony.com wrote:
>>>>> Hi
>>>>> Sharing 3 changes for zram regarding swap cache handling. Please have a look.
>>>>>
>>>>> Subject: [PATCH 1/3] zram, swap cache missing page tree offset
>>>>> Subject: [PATCH 2/3] zram, swap cache entries are pointer to struct page
>>>>> Subject: [PATCH 3/3] zram, exclude shadow entries from swap cache lookup
>>>>
>>>> Thank you for the patches.
>>>>
>>>>    > /* this already exists in maple_tree.h add to defs.h ? */
>>>>
>>>> Is it ok to add '#include maple_tree.h' ?
>>>
>>> Yes, that should work perfectly for 'xa_is_value'.
>>
>> Thanks for the reply.
>>
>> I'd like to squash the patches into a patch and add our signed-off-by
>> tags.  Please let me know if there is any trouble with the attached patch.
>
> All looks good, verified.
>
>>
>> One more thing, do you have any error message without the patch?  I'd
>> like to add it to the commit log, if possible.
>
> No, I haven't seen any error messages. Short description what happens:
>
> - lookup_swap_cache() return NULL since do_xarray() call return FALSE
> - in try_zram_decompress(), since 'entry' is NULL, page is filled with 00
>       if (!entry || (flags & ZRAM_FLAG_SAME_BIT)) {
>
> So without the patch, pages in swap cache will be seen to be a 'zero' page.

Thanks for the description, added.

Linabo, I updated the attached patch.

Thanks,
Kazu