[PATCH v4 00/11] Performance fixes for 9p filesystem

From: Eric Van Hensbergen
Date: Fri Feb 17 2023 - 19:43:56 EST


This is the fourth version of a patch series which adds a number
of features to improve read/write performance in the 9p filesystem.
Mostly it focuses on fixing caching to help utilize the recently
increased MSIZE limits and also fixes some problematic behavior
within the writeback code.

All together, these show roughly 10x speed increases on simple
file transfers over no caching for readahead mode. Future patch
sets will improve cache consistency and directory caching, which
should benefit loose mode.

This iteration of the patch incorporates an important fix for
writeback which uses a stronger mechanism to flush writeback on
close of files and addresses observed bugs in previous versions of
the patch for writeback, mmap, and loose cache modes.

These patches are also available on github:
https://github.com/v9fs/linux/tree/ericvh/for-next
and on kernel.org:
https://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs.git

Tested against qemu, cpu, and diod with fsx, dbench, and postmark
in every caching mode.

I'm gonna definitely submit the first couple patches as they are
fairly harmless - but would like to submit the whole series to the
upcoming merge window. Would appreciate reviews.

Eric Van Hensbergen (11):
net/9p: Adjust maximum MSIZE to account for p9 header
fs/9p: Expand setup of writeback cache to all levels
fs/9p: Consolidate file operations and add readahead and writeback
fs/9p: Remove unnecessary superblock flags
fs/9p: allow disable of xattr support on mount
net/9p: fix bug in client create for .L
9p: Add additional debug flags and open modes
fs/9p: Add new mount modes
fs/9p: fix error reporting in v9fs_dir_release
fs/9p: writeback mode fixes
fs/9p: Fix revalidate

Documentation/filesystems/9p.rst | 26 ++--
fs/9p/fid.c | 49 +++-----
fs/9p/fid.h | 33 ++++-
fs/9p/v9fs.c | 49 +++++---
fs/9p/v9fs.h | 10 +-
fs/9p/v9fs_vfs.h | 4 -
fs/9p/vfs_addr.c | 24 ++--
fs/9p/vfs_dentry.c | 3 +-
fs/9p/vfs_dir.c | 10 +-
fs/9p/vfs_file.c | 205 +++++++------------------------
fs/9p/vfs_inode.c | 102 +++++++--------
fs/9p/vfs_inode_dotl.c | 69 ++++++-----
fs/9p/vfs_super.c | 28 +++--
include/net/9p/9p.h | 5 +
net/9p/client.c | 8 +-
15 files changed, 284 insertions(+), 341 deletions(-)

--
2.37.2