On Thu, Feb 22, 2024 at 11:02:24AM -0800, Luis Chamberlain wrote: > On Fri, Feb 02, 2024 at 02:29:40PM +0000, Matthew Wilcox wrote: > > So my modest proposal is that we completely rearchitect how we handle > > swap. Instead of putting swp entries in the page tables (and in shmem's > > case in the page cache), we turn swap into an (object, offset) lookup > > (just like a filesystem). That means that each anon_vma becomes its > > own swap object and each shmem inode becomes its own swap object. > > The swap system can then borrow techniques from whichever filesystem > > it likes to do (object, offset, length) -> n x (device, block) mappings. > > What happened to Yosry or Chris's last year's pony [0]? In order to try For me, I unfortunately got occuppied with other projects and don't have the bandwidth to work on it for now :/ I don't want to put anyone on the spot, but I think Nhat may have been thinking about pursuing a version of this at some point. > to take a stab at this we started with adding large folios to tmpfs, > which Daniel Gomez has taken on, as its a simple filesystem and with > large folios can enable us to easily test large folio swap support too. > Daniel first tried fixing lseek issue with huge pages [1] and on top of > that he has patches (a new RFC not posted yet) which do add large folios > support to tmpfs. Hugh has noted the lskeek changes are incorrect and > suggested instead a fix for the failed tests in fstests. If we get > agreement on Hugh's approach then we have a step forward with tmpfs and > later we hope this will make it easier to test swap changes. > > Its probably then a good time to ask, do we have a list of tests for > swap to ensure we don't break things if we add large folio support? > We can at least start with a good baseline of tests for that. > > [0] https://lwn.net/Articles/932077/ > [1] https://lkml.kernel.org/r/20240209142901.126894-1-da.gomez@xxxxxxxxxxx > > Luis