Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1347020
| From | Waiman Long <Waiman.Long@hpe.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v5 0/5] vfs: Use per-cpu list for SB's s_inodes list |
| Date | 2016-03-01 22:10 +0100 |
| Message-ID | <r7ZIm-6hp-7@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
v4->v5: - Fix the UP panic problem reported by 0day test by unifying the SMP and UP code. - Add patch 5 to add a new kernel config parameter to allow disabling per-cpu list for small systems that won't benefit much from this feature. v3->v4: - Fix some racing conditions in the code. - Add another patch from Jan to replace list_for_each_entry_safe() by list_for_each_entry(). - Add lockdep annotation. v2->v3: - Directly replace list_for_each_entry() and list_for_each_entry_safe() by pcpu_list_iterate() and pcpu_list_iterate_safe() respectively instead. Those 2 functions provide a stateful per-cpu list iteration interface. - Include Jan Kara's patch to clean up the fsnotify_unmount_inodes() function. v1->v2: - Use separate structures for list head and nodes & provide a cleaner interface. - Use existing list_for_each_entry() or list_for_each_entry_safe() macros for each of the sb's s_inodes iteration functions instead of using list_for_each_entry_safe() for all of them which may not be safe in some cases. - Use an iterator interface to access all the nodes of a group of per-cpu lists. This approach is cleaner than the previous double-for macro which is kind of hacky. However, it does require more lines of code changes. - Add a preparatory patch 2 to extract out the per-inode codes from the superblock s_inodes list iteration functions to minimize code changes needed in the patch 3. This patch is a replacement of my previous list batching patch - https://lwn.net/Articles/674105/. Compared with the previous patch, this one provides better performance and fairness. However, it also requires a bit more changes in the VFS layer. This patchset is a derivative of Andi Kleen's patch on "Initial per cpu list for the per sb inode list" https://git.kernel.org/cgit/linux/kernel/git/ak/linux-misc.git/commit/?h=hle315/combined&id=f1cf9e715a40f44086662ae3b29f123cf059cbf4 Patch 1 introduces the per-cpu list. Patch 2 cleans up the fsnotify_unmount_inodes() function by making the code simpler and more standard. Patch 3 replaces the use of list_for_each_entry_safe() in evict_inodes() and invalidate_inodes() by list_for_each_entry(). Patch 4 modifies the superblock and inode structures to use the per-cpu list. The corresponding functions that reference those structures are modified. Patch 5 adds a new kernel config paramter to allow kernel builders to disable the use of per-cpu list if they choose to do so. Jan Kara (2): fsnotify: Simplify inode iteration on umount vfs: Remove unnecessary list_for_each_entry_safe() variants Waiman Long (3): lib/percpu-list: Per-cpu list with associated per-cpu locks vfs: Use per-cpu list for superblock's inode list lib/percpu-list: Add a config parameter for disabling per-cpu list 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/fs.h | 8 +- include/linux/percpu-list.h | 309 +++++++++++++++++++++++++++++++++++++++++++ lib/Kconfig | 14 ++ lib/Makefile | 2 +- lib/percpu-list.c | 122 +++++++++++++++++ 12 files changed, 509 insertions(+), 96 deletions(-) create mode 100644 include/linux/percpu-list.h create mode 100644 lib/percpu-list.c
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
[PATCH v5 0/5] vfs: Use per-cpu list for SB's s_inodes list Waiman Long <Waiman.Long@hpe.com> - 2016-03-01 22:10 +0100
[PATCH v5 3/5] vfs: Remove unnecessary list_for_each_entry_safe() variants Waiman Long <Waiman.Long@hpe.com> - 2016-03-01 22:10 +0100
[PATCH v5 4/5] vfs: Use per-cpu list for superblock's inode list Waiman Long <Waiman.Long@hpe.com> - 2016-03-01 22:10 +0100
[PATCH v5 1/5] lib/percpu-list: Per-cpu list with associated per-cpu locks Waiman Long <Waiman.Long@hpe.com> - 2016-03-01 22:10 +0100
[PATCH v5 5/5] lib/percpu-list: Add a config parameter for disabling per-cpu list Waiman Long <Waiman.Long@hpe.com> - 2016-03-01 22:10 +0100
Re: [PATCH v5 5/5] lib/percpu-list: Add a config parameter for disabling per-cpu list Ingo Molnar <mingo@kernel.org> - 2016-03-02 09:50 +0100
Re: [PATCH v5 5/5] lib/percpu-list: Add a config parameter for disabling per-cpu list Waiman Long <waiman.long@hpe.com> - 2016-03-02 23:00 +0100
Re: [PATCH v5 0/5] vfs: Use per-cpu list for SB's s_inodes list Jan Kara <jack@suse.cz> - 2016-03-03 11:50 +0100
csiph-web