Following Hugh's advice at LSFMM 2019, I was trying to avoid doing this, but it turns out to be hard to support range writeback with the pagecache using multiple single entries. Of course, this isn't a problem for shmem because it doesn't have a real backing device (only swap), but real filesystems need to start writeback at arbitrary file offsets and have problems if we don't notice that the first (huge) page in the range is dirty. Hugh, I would love it if you could test this. It didn't introduce any new regressions to the xfstests, but shmem does exercise different paths and of course I don't have a clean xfstests run yet, so there could easily still be bugs. I'd like this to be included in mmotm, but it is less urgent than the previous patch series that I've sent. As far as risk, I think it only affects shmem/tmpfs. Matthew Wilcox (Oracle) (2): XArray: Add xas_split mm: Use multi-index entries in the page cache Documentation/core-api/xarray.rst | 16 ++-- include/linux/xarray.h | 2 + lib/test_xarray.c | 41 ++++++++ lib/xarray.c | 153 ++++++++++++++++++++++++++++-- mm/filemap.c | 42 ++++---- mm/huge_memory.c | 21 +++- mm/khugepaged.c | 12 ++- mm/shmem.c | 11 +-- 8 files changed, 245 insertions(+), 53 deletions(-) -- 2.27.0