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 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