Thread (39 messages) 39 messages, 5 authors, 2022-01-19

Re: [PATCH 01/18] Structural cleanup for filesystem-based swap

From: Christoph Hellwig <hch@infradead.org>
Date: 2021-12-21 08:34:24
Also in: linux-nfs, lkml

On Fri, Dec 17, 2021 at 10:48:22AM +1100, NeilBrown wrote:
Linux primarily uses IO to block devices for swap, but can send the IO
requests to a filesystem.  This has only ever worked for NFS, and that
hasn't worked for a while due to a lack of testing.  This seems like a
good time for some tidy-up before restoring swap-over-NFS functionality.
The changes look good to me, but I think this needs to be split into
separate, self-contained patches.
This patch:
Patch 1:
 - updates the documentation (both copies!) for swap_activate which
   is woefully out-of-date
Patch 2:
 - drops the call to the filesystem for ->set_page_dirty().  These
   pages do not belong to the filesystem, and it has no interest
   in the dirty status.
Patch 3:

 - move the responsibility for setting SWP_FS_OPS to ->swap_activate()
   and also requires it to always call add_swap_extent().  This makes
   it much easier to find filesystems that require SWP_FS_OPS.
Patch 4:
 - introduces a new address_space operation "swap_rw" for swap IO.
   The code currently used ->readpage for reads and ->direct_IO for
   writes.  The former imposes a limit of one-page-at-a-time, the
   later means that direct writes and swap writes are encouraged to
   use the same path.  While similar, swap can often be simpler as
   it can assume that no allocation is needed, and coherence with the
   page cache is irrelevant.
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help