summaryrefslogtreecommitdiff
path: root/include/linux/errqueue.h
diff options
context:
space:
mode:
authorSergey Senozhatsky <senozhatsky@chromium.org>2025-03-03 05:03:11 +0300
committerAndrew Morton <akpm@linux-foundation.org>2025-03-17 08:06:33 +0300
commit2efa9e9eb4db2725c9f419f241cb0e09fc3d8574 (patch)
tree4bd3ff3553dc7a3c9dd880f199fdb3df1e98b3ac /include/linux/errqueue.h
parentbd175a1d84e3ff05da032160ca2399437c23a59f (diff)
downloadlinux-2efa9e9eb4db2725c9f419f241cb0e09fc3d8574.tar.xz
zram: permit preemption with active compression stream
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. Link: https://lkml.kernel.org/r/20250303022425.285971-3-senozhatsky@chromium.org Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org> Suggested-by: Yosry Ahmed <yosry.ahmed@linux.dev> Reviewed-by: Yosry Ahmed <yosry.ahmed@linux.dev> Cc: Hillf Danton <hdanton@sina.com> Cc: Kairui Song <ryncsn@gmail.com> Cc: Minchan Kim <minchan@kernel.org> Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'include/linux/errqueue.h')
0 files changed, 0 insertions, 0 deletions