[PATCH v2 0/7] vfs: Use dlock list for SB's s_inodes list
From: Waiman Long
Date: Mon Jul 11 2016 - 13:33:47 EST
v1->v2:
- Add a set of simple per-subnode APIs that is between percpu and
per-node in granularity.
- Make dlock list to use the per-subnode APIs so as to reduce the
total number of separate linked list that needs to be managed
and iterated.
- There is no change in patches 1-5.
This is a follow up of the following patchset:
[PATCH v7 0/4] vfs: Use per-cpu list for SB's s_inodes list
https://lkml.org/lkml/2016/4/12/1009
The main change is the renaming of percpu list to dlock list, as
suggested by Christoph Lameter. It also adds a new patch from Boqun
Feng to add the __percpu modifier for parameters.
Patch 1 introduces the dlock list.
Patch 2 adds the __percpu modifier to the appropriate parameters.
Patch 3 cleans up the fsnotify_unmount_inodes() function by making
the code simpler and more standard.
Patch 4 replaces the use of list_for_each_entry_safe() in
evict_inodes() and invalidate_inodes() by list_for_each_entry().
Patch 5 modifies the superblock and inode structures to use the dlock
list. The corresponding functions that reference those structures
are modified.
Patch 6 adds a new set of per-subnode APIs that allow distributed
resources with a granularity that is in between a per-cpu and per-node
systems.
Patch 7 modifies the dlock list to use the new per-subnode APIs so
that it will have less linked lists to manage and iterate compared
with the per-cpu version.
Boqun Feng (1):
lib/dlock-list: Add __percpu modifier for parameters
Jan Kara (2):
fsnotify: Simplify inode iteration on umount
vfs: Remove unnecessary list_for_each_entry_safe() variants
Waiman Long (4):
lib/dlock-list: Distributed and lock-protected lists
vfs: Use dlock list for superblock's inode list
lib/persubnode: Introducing a simple per-subnode APIs
lib/dlock-list: Use the per-subnode APIs for managing lists
fs/block_dev.c | 13 ++-
fs/drop_caches.c | 10 +-
fs/fs-writeback.c | 13 ++-
fs/inode.c | 40 +++-----
fs/notify/inode_mark.c | 53 +++--------
fs/quota/dquot.c | 16 ++--
fs/super.c | 7 +-
include/linux/dlock-list.h | 234 ++++++++++++++++++++++++++++++++++++++++++++
include/linux/fs.h | 8 +-
include/linux/persubnode.h | 80 +++++++++++++++
init/main.c | 2 +
lib/Makefile | 4 +-
lib/dlock-list.c | 102 +++++++++++++++++++
lib/persubnode.c | 119 ++++++++++++++++++++++
14 files changed, 605 insertions(+), 96 deletions(-)
create mode 100644 include/linux/dlock-list.h
create mode 100644 include/linux/persubnode.h
create mode 100644 lib/dlock-list.c
create mode 100644 lib/persubnode.c