Re: [PATCH 5.19] Revert "zram: remove double compression logic"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 29, 2022 at 09:31:47AM +0200, Jiri Slaby wrote:
> This reverts commit e7be8d1dd983156b ("zram: remove double compression
> logic") as it causes zram failures.  It does not revert cleanly, PTR_ERR
> handling was introduced in the meantime.  This is handled by appropriate
> IS_ERR.
> 
> When under memory pressure, zs_malloc() can fail.  Before the above
> commit, the allocation was retried with direct reclaim enabled (GFP_NOIO).
> After the commit, it is not -- only __GFP_KSWAPD_RECLAIM is tried.
> 
> So when the failure occurs under memory pressure, the overlaying
> filesystem such as ext2 (mounted by ext4 module in this case) can emit
> failures, making the (file)system unusable:
>   EXT4-fs warning (device zram0): ext4_end_bio:343: I/O error 10 writing to inode 16386 starting block 159744)
>   Buffer I/O error on device zram0, logical block 159744
> 
> With direct reclaim, memory is really reclaimed and allocation succeeds,
> eventually.  In the worst case, the oom killer is invoked, which is proper
> outcome if user sets up zram too large (in comparison to available RAM).
> 
> This very diff doesn't apply to 5.19 (stable) cleanly (see PTR_ERR note
> above). Use revert of e7be8d1dd983 directly.
> 
> Link: https://bugzilla.suse.com/show_bug.cgi?id=1202203
> Link: https://lkml.kernel.org/r/20220810070609.14402-1-jslaby@xxxxxxx
> Fixes: e7be8d1dd983 ("zram: remove double compression logic")
> Signed-off-by: Jiri Slaby <jslaby@xxxxxxx>
> Reviewed-by: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx>
> Cc: Minchan Kim <minchan@xxxxxxxxxx>
> Cc: Nitin Gupta <ngupta@xxxxxxxxxx>
> Cc: Alexey Romanov <avromanov@xxxxxxxxxxxxxx>
> Cc: Dmitry Rokosov <ddrokosov@xxxxxxxxxxxxxx>
> Cc: Lukas Czerner <lczerner@xxxxxxxxxx>
> Cc: <stable@xxxxxxxxxxxxxxx>	[5.19]
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> ---
>  drivers/block/zram/zram_drv.c | 42 ++++++++++++++++++++++++++---------
>  drivers/block/zram/zram_drv.h |  1 +
>  2 files changed, 33 insertions(+), 10 deletions(-)
> 

Now queued up, thanks.

greg k-h



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux