On Sat, 13 Feb 2021 20:58:29 +1300 Barry Song <song.bao.hua@xxxxxxxxxxxxx> wrote: > The compatibility of zsmalloc and zswap was broken by commit 1ec3b5fe6eec > ("mm/zswap: move to use crypto_acomp API for hardware acceleration"). > > patch #1 add a flag to zpool, then zswap used it to determine if zpool > drivers such as zbud/z3fold/zsmalloc will enter an atomic context after > mapping. the difference between zbud/z3fold and zsmalloc is that zsmalloc > requires an atomic context since its map function holds a > preempt-disabled lock, but zbud/z3fold don't require an atomic context. > so patch #2 set flag sleep_mapped to true indicates that zbud/z3fold can > sleep after mapping. zsmalloc didn't support sleep after mapping, so not > set that flag to true. OK, thanks for cleaning all that up. I'll send it in to Linus for 5.11 if there will be a -rc8. Otherwise for 5.12-rc1 with a cc:stable so this gets repaired in 5.11.1.