Possibe NFS mm problem: client page-in errors with ZFS Linux server

From: Martin Cracauer
Date: Mon Feb 11 2019 - 11:49:22 EST


Folks. I suspect that this isn't actually a ZFS bug but a general
memory manager problem. I would appreciate input from mm folks. I
parked the detailed bug report here for now:
https://github.com/zfsonlinux/zfs/issues/8396

Short story:

When running a ZFS on a Linux 4.19/4.20 NFS server the clients are
occasionally unsuccessful in perfectly normal page-in on mapped files.

Example: executable on NFS mounted filesystem. Some executable-mapped
page is referenced. The page is supposed to be retrieved on demand if
not resident yet. This occasionally fails with recent Linux or ZoL
code.

The semantics of the error are identical to what is legitimately
happening when you have a page fault in a NFS client mapped file after
that file has been unlinked on the server side. Here it is happening
without the unlinking.

I suspect this might be a general Linux mm problem because I
cross-checked with a FreeBSD server with very similar ZFS code.
Although I cannot track when the error started appearing I know it is
about within the last 6 months and I read all commits to ZoL that
manage pages and couldn't see anything suspicious off-hand. On the
other hand the errors do not appear when moving the server side file
tree to ext4fs.

The errors get more frequent with uptime of the server and are not
impressed by drop_caches or by trying to evict ZFS' own caches with
memory pressure.

Details with a line of reasoning why I blame the server and all other
info I am collecting:
https://github.com/zfsonlinux/zfs/issues/8396

Thanks
Martin
--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer <cracauer@xxxxxxxx> http://www.cons.org/cracauer/