Re: [PATCH v4 3/3] zram: support BDI_CAP_STABLE_WRITES
From: Sergey Senozhatsky
Date: Wed Dec 21 2016 - 20:31:32 EST
On (12/22/16 09:36), Minchan Kim wrote:
> zram has used per-cpu stream feature from v4.7.
> It aims for increasing cache hit ratio of scratch buffer for
> compressing. Downside of that approach is that zram should ask
> memory space for compressed page in per-cpu context which requires
> stricted gfp flag which could be failed. If so, it retries to
> allocate memory space out of per-cpu context so it could get memory
> this time and compress the data again, copies it to the memory space.
>
> In this scenario, zram assumes the data should never be changed
> but it is not true without stable page support. So, If the data is
> changed under us, zram can make buffer overrun so that zsmalloc
> free object chain is broken so system goes crash like below
> https://bugzilla.suse.com/show_bug.cgi?id=997574
>
> This patch adds BDI_CAP_STABLE_WRITES to zram for declaring
> "I am block device needing *stable write*".
>
> Fixes: da9556a2367c ("zram: user per-cpu compression streams")
> Cc: <stable@xxxxxxxxxxxxxxx> [4.7+]
> Signed-off-by: Minchan Kim <minchan@xxxxxxxxxx>
Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
-ss