Hi Neil, On Mon, Jan 24, 2022 at 5:40 PM NeilBrown <neilb@xxxxxxx> wrote: > swap-over-NFS currently has a variety of problems. > > swap writes call generic_write_checks(), which always fails on a swap > file, so it completely fails. > Even without this, various deadlocks are possible - largely due to > improvements in NFS memory allocation (using NOFS instead of ATOMIC) > which weren't tested against swap-out. > > NFS is the only filesystem that has supported fs-based swap IO, and it > hasn't worked for several releases, so now is a convenient time to clean > up the swap-via-filesystem interfaces - we cannot break anything ! > > So the first few patches here clean up and improve various parts of the > swap-via-filesystem code. ->activate_swap() is given a cleaner > interface, a new ->swap_rw is introduced instead of burdening > ->direct_IO, etc. > > Current swap-to-filesystem code only ever submits single-page reads and > writes. These patches change that to allow multi-page IO when adjacent > requests are submitted. Writes are also changed to be async rather than > sync. This substantially speeds up write throughput for swap-over-NFS. > > Some of the NFS patches can land independently of the MM patches. A few > require the MM patches to land first. Thanks for your series! Swap over NFS was indeed broken last time I tried[1], but with your series, it's working again on arm32 (RZ/A1 with 32 MiB of RAM, 100Mbps Ethernet and Debian 9 nfsroot). My system was exercised using "apt update", and the subsequent "apt upgrade" is still running, though (it took more than 6 hours to build the apt dependency tree, now it's trying hard to create a list of packages...). Tested-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> BTW, I think you do want to run scripts/checkpatch.pl on your series, and improve it by fixing a few of the reported warnings (function definition arguments should also have an identifier name, missing data_race() comment, missing SPDX-License-Identifier tag). [1] https://lore.kernel.org/all/20191230153238.29878-1-geert+renesas@xxxxxxxxx/ Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds