2023-11-06 20:42:54

by Vasily Averin

[permalink] [raw]
Subject: zram: zram_free_page calls in zram_meta_free

The only place where content of zram entry is accessed and even changed without taken zran lock is
zram_free_page() calls from zram_meta_free().

It does not look like problem because zram should not have any users at this point,
however I still do not understand why this is required?

Is it performance optimization? But zram reset is quite rare operation, I doubt it is called
on some performance-critical fast path. Am I missed something perhaps?

I would like to add proper zram_lock/unlock calls around zram_free_page here,
and would like to clarify,perhaps you have any objections?

Thank you,
Vasily Averin


2023-11-07 07:24:14

by Sergey Senozhatsky

[permalink] [raw]
Subject: Re: zram: zram_free_page calls in zram_meta_free

On (23/11/06 23:42), Vasily Averin wrote:
> The only place where content of zram entry is accessed and even changed without taken zran lock is
> zram_free_page() calls from zram_meta_free().
>
> It does not look like problem because zram should not have any users at this point,
> however I still do not understand why this is required?

It's simply pointless. Reset is performed under write init_lock,
which is an upper level per-device lock.