On Tue, 2020-08-04 at 17:17 +0100, Matthew Wilcox (Oracle) wrote: > We actually use nrexceptional for very little these days. It's a > constant > source of pain with the THP patches because we don't know how large a > shadow entry is, so either we have to ask the xarray how many indices > it covers, or store that information in the shadow entry (and reduce > the amount of other information in the shadow entry proportionally). > While tracking down the most recent case of "evict tells me I've got > the accounting wrong again", I wondered if it might not be simpler to > just remove it. So here's a patch set to do just that. I think each > of these patches is an improvement in isolation, but the combination > of > all four is larger than the sum of its parts. > > I'm running xfstests on this patchset right now. If one of the DAX > people could try it out, that'd be fantastic. > > Matthew Wilcox (Oracle) (4): > mm: Introduce and use page_cache_empty > mm: Stop accounting shadow entries > dax: Account DAX entries as nrpages > mm: Remove nrexceptional from inode Hi Matthew, I applied these on top of 5.8 and ran them through the nvdimm unit test suite, and saw some test failures. The first failing test signature is: + umount test_dax_mnt ./dax-ext4.sh: line 62: 15749 Segmentation fault umount $MNT FAIL dax-ext4.sh (exit status: 139) The line is: https://github.com/pmem/ndctl/blob/master/test/dax.sh#L79 And the failing umount happens right after 'run_test', which calls this: https://github.com/pmem/ndctl/blob/master/test/dax-pmd.c > > fs/block_dev.c | 2 +- > fs/dax.c | 8 ++++---- > fs/inode.c | 2 +- > include/linux/fs.h | 2 -- > include/linux/pagemap.h | 5 +++++ > mm/filemap.c | 15 --------------- > mm/truncate.c | 19 +++---------------- > mm/workingset.c | 1 - > 8 files changed, 14 insertions(+), 40 deletions(-) >