On Tue, 16 Nov 2021, Christoph Hellwig wrote: > On Tue, Nov 16, 2021 at 01:44:04PM +1100, NeilBrown wrote: > > When pages a read from SWP_FS_OPS swap-space, the reads are submitted as > > separate reads for each page. This is generally less efficient than > > larger reads. > > > > We can use the block-plugging infrastructure to delay submitting the > > read request until multiple contigious pages have been collected. This > > requires using ->direct_IO to submit the read (as ->readpages isn't > > suitable for swap). > > Abusing the block code here seems little ugly. Also this won't > compile if CONFIG_BLOCK is not set, will it? There is nothing really block-layer-specific about the plugging interfaces. I think it would be quite reasonable to move them to lib/ But you are correct that currently without CONFIG_BLOCK the code will compile but not work. > > What is the problem with just batching up manually? That would require a bigger change to common code, which would only benefit one user. The plugging mechanism works well for batching requests to a block device. Why not use it for non-block-devices too? Thanks, NeilBrown > > > + /* nofs needs as ->direct_IO may take the same mutex it takes for write */ > > Overly long line. > >