On Fri, Feb 14, 2025 at 01:50:14PM +0900, Sergey Senozhatsky wrote: > Currently, per-CPU stream access is done from a non-preemptible > (atomic) section, which imposes the same atomicity requirements on > compression backends as entry spin-lock, and makes it impossible > to use algorithms that can schedule/wait/sleep during compression > and decompression. > > Switch to preemptible per-CPU model, similar to the one used > in zswap. Instead of a per-CPU local lock, each stream carries > a mutex which is locked throughout entire time zram uses it > for compression or decompression, so that cpu-dead event waits > for zram to stop using a particular per-CPU stream and release > it. > > Suggested-by: Yosry Ahmed <yosry.ahmed@xxxxxxxxx> > Signed-off-by: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx> Reviewed-by: Yosry Ahmed <yosry.ahmed@xxxxxxxxx>