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