WSL2-Linux-Kernel/Documentation/filesystems
NeilBrown 8d92890bd6 mm/writeback: discard NR_UNSTABLE_NFS, use NR_WRITEBACK instead
After an NFS page has been written it is considered "unstable" until a
COMMIT request succeeds.  If the COMMIT fails, the page will be
re-written.

These "unstable" pages are currently accounted as "reclaimable", either
in WB_RECLAIMABLE, or in NR_UNSTABLE_NFS which is included in a
'reclaimable' count.  This might have made sense when sending the COMMIT
required a separate action by the VFS/MM (e.g.  releasepage() used to
send a COMMIT).  However now that all writes generated by ->writepages()
will automatically be followed by a COMMIT (since commit 919e3bd9a8
("NFS: Ensure we commit after writeback is complete")) it makes more
sense to treat them as writeback pages.

So this patch removes NR_UNSTABLE_NFS and accounts unstable pages in
NR_WRITEBACK and WB_WRITEBACK.

A particular effect of this change is that when
wb_check_background_flush() calls wb_over_bg_threshold(), the latter
will report 'true' a lot less often as the 'unstable' pages are no
longer considered 'dirty' (as there is nothing that writeback can do
about them anyway).

Currently wb_check_background_flush() will trigger writeback to NFS even
when there are relatively few dirty pages (if there are lots of unstable
pages), this can result in small writes going to the server (10s of
Kilobytes rather than a Megabyte) which hurts throughput.  With this
patch, there are fewer writes which are each larger on average.

Where the NR_UNSTABLE_NFS count was included in statistics
virtual-files, the entry is retained, but the value is hard-coded as
zero.  static trace points and warning printks which mentioned this
counter no longer report it.

[akpm@linux-foundation.org: re-layout comment]
[akpm@linux-foundation.org: fix printk warning]
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Acked-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Acked-by: Michal Hocko <mhocko@suse.com>	[mm]
Cc: Christoph Hellwig <hch@lst.de>
Cc: Chuck Lever <chuck.lever@oracle.com>
Link: http://lkml.kernel.org/r/87d06j7gqa.fsf@notabene.neil.brown.name
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-06-02 10:59:08 -07:00
..
caching Documentation: Use "while" instead of "whilst" 2018-11-20 09:30:43 -07:00
cifs Documentation: nfsroot.rst: Fix references to nfsroot.rst 2020-03-02 13:11:46 -07:00
configfs configfs: fix wrong name of struct in documentation 2018-12-20 08:41:38 -07:00
ext4 Added new ext4 debugging ioctls to allow userspace to get information 2019-09-21 13:37:39 -07:00
nfs Documentation: nfs: knfsd-stats: convert to ReST 2020-02-13 11:21:35 -07:00
9p.rst 9p pull request for inclusion in 5.7 (take 2) 2020-04-08 21:51:14 -07:00
adfs.rst docs: filesystems: convert adfs.txt to ReST 2020-03-02 13:58:44 -07:00
affs.rst docs: filesystems: convert affs.txt to ReST 2020-03-02 14:01:06 -07:00
afs.rst docs: filesystems: convert afs.txt to ReST 2020-03-02 14:01:25 -07:00
api-summary.rst docs: no structured comments in fs/file_table.c 2019-05-24 15:03:39 -06:00
autofs-mount-control.rst docs: filesystems: convert autofs-mount-control.txt to ReST 2020-03-02 14:01:25 -07:00
autofs.rst docs: filesystems: Add mount map description in Content 2019-11-18 12:19:59 -07:00
automount-support.txt Documentation: filesystems: automount-support: Change reference to document autofs.txt to autofs.rst 2019-12-19 09:35:51 -07:00
befs.rst docs: filesystems: convert befs.txt to ReST 2020-03-02 14:01:25 -07:00
bfs.rst docs: filesystems: convert bfs.txt to ReST 2020-03-02 14:01:26 -07:00
btrfs.rst docs: filesystems: convert btrfs.txt to ReST 2020-03-02 14:01:28 -07:00
ceph.rst The main items are: 2020-04-08 21:44:05 -07:00
coda.txt coda: Fix typo in the struct CodaCred documentation 2019-07-30 14:19:41 -06:00
cramfs.rst docs: filesystems: convert cramfs.txt to ReST 2020-03-02 14:02:07 -07:00
dax.txt Documentation: filesystem: Convert xfs.txt to ReST 2019-07-15 09:15:09 -07:00
debugfs.rst debugfs: remove return value of debugfs_create_u32() 2020-04-17 17:08:50 +02:00
devpts.txt devpts: Make each mount of devpts an independent filesystem. 2016-06-05 10:36:01 -07:00
directory-locking.rst docs: fs: convert docs without extension to ReST 2019-07-31 13:31:05 -06:00
dlmfs.rst docs: filesystems: convert dlmfs.txt to ReST 2020-03-02 14:02:24 -07:00
dnotify.txt Documentation: fix selftests related file refs 2017-10-19 12:58:21 -06:00
ecryptfs.rst docs: prevent warnings due to autosectionlabel 2020-03-20 17:01:29 -06:00
efivarfs.rst docs: filesystems: convert efivarfs.txt to ReST 2020-03-02 14:02:57 -07:00
erofs.rst docs: filesystems: convert erofs.txt to ReST 2020-03-02 14:02:57 -07:00
ext2.rst docs: filesystems: convert ext2.txt to ReST 2020-03-02 14:02:59 -07:00
ext3.rst docs: filesystems: convert ext3.txt to ReST 2020-03-02 14:03:16 -07:00
f2fs.rst fscrypt: support test_dummy_encryption=v2 2020-05-18 20:21:48 -07:00
fiemap.txt Documentation: correct the description of FIEMAP_EXTENT_LAST 2020-03-14 14:43:13 -04:00
files.txt Wrap accesses to the fd_sets in struct fdtable 2012-02-19 10:30:52 -08:00
fscrypt.rst fscrypt: add support for IV_INO_LBLK_32 policies 2020-05-19 09:34:18 -07:00
fsverity.rst docs: fs-verity: mention statx() support 2019-11-13 12:15:34 -08:00
fuse-io.txt fuse: add writeback documentation 2018-03-20 17:11:45 +01:00
fuse.rst docs: filesystems: fuse.rst: supress a Sphinx warning 2020-03-10 11:55:25 -06:00
gfs2-glocks.txt GFS2: Minor improvements to comments and documentation 2018-04-12 10:07:51 -07:00
gfs2-uevents.rst docs: filesystems: convert gfs2-uevents.txt to ReST 2020-03-02 14:03:35 -07:00
gfs2.rst docs: filesystems: convert gfs2.txt to ReST 2020-03-02 14:03:18 -07:00
hfs.rst docs: filesystems: convert hfs.txt to ReST 2020-03-02 14:03:48 -07:00
hfsplus.rst docs: filesystems: convert hfsplus.txt to ReST 2020-03-02 14:03:47 -07:00
hpfs.rst docs: filesystems: convert hpfs.txt to ReST 2020-03-02 14:03:48 -07:00
index.rst doc: zh_CN: index files in filesystems subdirectory 2020-03-20 17:19:31 -06:00
inotify.rst docs: filesystems: convert inotify.txt to ReST 2020-03-02 14:03:55 -07:00
isofs.rst docs: filesystems: convert isofs.txt to ReST 2020-03-02 14:04:06 -07:00
journalling.rst docs: Bring some order to filesystem documentation 2019-03-06 09:46:10 -07:00
locking.rst mm: add readahead address space operation 2020-06-02 10:59:06 -07:00
locks.txt docs: fix locations of several documents that got moved 2016-10-24 08:12:35 -02:00
mandatory-locking.txt locks: print a warning when mount fails due to lack of "mand" support 2019-08-16 12:13:48 -04:00
mount_api.txt fs_parser: remove fs_parameter_description name field 2020-02-07 14:48:36 -05:00
nilfs2.rst docs: filesystems: convert nilfs2.txt to ReST 2020-03-02 14:04:06 -07:00
ntfs.rst docs: filesystems: convert ntfs.txt to ReST 2020-03-02 14:04:06 -07:00
ocfs2-online-filecheck.rst docs: filesystems: convert ocfs2-online-filecheck.txt to ReST 2020-03-02 14:04:06 -07:00
ocfs2.rst docs: filesystems: convert ocfs2.txt to ReST 2020-03-02 14:04:08 -07:00
omfs.rst docs: filesystems: convert omfs.txt to ReST 2020-03-02 14:04:26 -07:00
orangefs.rst orangefs: a fix and two cleanups and a merge conflict 2020-04-10 17:50:01 -07:00
overlayfs.rst ovl: document xino expected behavior 2020-03-27 16:51:02 +01:00
path-lookup.rst sanitize handling of nd->last_type, kill LAST_BIND 2020-03-13 21:08:19 -04:00
path-lookup.txt Documentation: add new description of path-name lookup. 2015-11-02 18:18:25 -07:00
porting.rst cifs_atomic_open(): fix double-put on late allocation failure 2020-03-12 18:25:20 -04:00
proc.rst mm/writeback: discard NR_UNSTABLE_NFS, use NR_WRITEBACK instead 2020-06-02 10:59:08 -07:00
qnx6.rst docs: filesystems: fix typo in qnx6.rst 2020-04-07 13:20:56 -06:00
quota.txt scripts/spelling.txt: add "an user" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
ramfs-rootfs-initramfs.rst docs: filesystems: convert ramfs-rootfs-initramfs.txt to ReST 2020-03-02 14:04:41 -07:00
relay.rst docs: filesystems: convert relay.txt to ReST 2020-03-02 14:04:41 -07:00
romfs.rst docs: filesystems: convert romfs.txt to ReST 2020-03-02 14:04:41 -07:00
seq_file.txt fs/seq_file.c: simplify seq_file iteration code and interface 2018-08-17 16:20:28 -07:00
sharedsubtree.txt doc: fix grammar 2016-03-09 15:33:06 -07:00
splice.rst docs: Bring some order to filesystem documentation 2019-03-06 09:46:10 -07:00
spufs.txt Documentation: fix spelling mistake, EACCESS -> EACCES 2018-11-07 15:28:55 -07:00
squashfs.rst docs: filesystems: convert squashfs.txt to ReST 2020-03-02 14:04:41 -07:00
sysfs-pci.txt PCI: Add pci_mmap_resource_range() and use it for ARM64 2017-04-20 08:47:47 -05:00
sysfs-tagging.txt sysfs-tagging.txt: fix pre-kernfs references 2015-09-13 14:38:51 -06:00
sysfs.rst docs: filesystems: convert sysfs.txt to ReST 2020-03-02 14:04:41 -07:00
sysv-fs.rst docs: filesystems: convert sysv-fs.txt to ReST 2020-03-02 14:04:41 -07:00
tmpfs.rst docs: filesystems: convert tmpfs.txt to ReST 2020-03-02 14:04:41 -07:00
ubifs-authentication.rst docs: filesystems: convert ubifs-authentication.rst.txt to ReST 2020-03-02 14:04:41 -07:00
ubifs.rst docs: filesystems: convert ubifs.txt to ReST 2020-03-02 14:04:41 -07:00
udf.rst docs: filesystems: convert udf.txt to ReST 2020-03-02 14:04:52 -07:00
vfat.rst Documentation: filesystems: convert vfat.txt to RST 2020-01-10 10:58:45 -07:00
vfs.rst mm: add readahead address space operation 2020-06-02 10:59:06 -07:00
virtiofs.rst doc: zh_CN: add translation for virtiofs 2020-03-20 17:19:35 -06:00
xfs-delayed-logging-design.txt Documentation: xfs: Fix typo 2019-06-07 11:42:20 -06:00
xfs-self-describing-metadata.txt xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07:00
zonefs.rst This has been a busy cycle for documentation work. Highlights include: 2020-03-30 12:45:23 -07:00