Re: [PATCH v4 0/3] fs/dcache: Track # of negative dentries

From: Waiman Long
Date: Fri Oct 05 2018 - 10:55:53 EST


On 09/12/2018 01:35 PM, Waiman Long wrote:
> v3->v4:
> - Drop patch 4 as it is just a minor optimization.
> - Add a cc:stable tag to patch 1.
> - Clean up some comments in patch 3.
>
> v2->v3:
> - With confirmation that the dummy array in dentry_stat structure
> was never a replacement of a previously used field, patch 3 is now
> reverted back to use one of dummy field as the negative dentry count
> instead of adding a new field.
>
> v1->v2:
> - Clarify what the new nr_dentry_negative per-cpu counter is tracking
> and open-code the increment and decrement as suggested by Dave Chinner.
> - Append the new nr_dentry_negative count as the 7th element of dentry-state
> instead of replacing one of the dummy entries.
> - Remove patch "fs/dcache: Make negative dentries easier to be
> reclaimed" for now as I need more time to think about what
> to do with it.
> - Add 2 more patches to address issues found while reviewing the
> dentry code.
> - Add another patch to change the conditional branch of
> nr_dentry_negative accounting to conditional move so as to reduce
> the performance impact of the accounting code.
>
> This patchset addresses 2 issues found in the dentry code and adds a
> new nr_dentry_negative per-cpu counter to track the total number of
> negative dentries in all the LRU lists.
>
> Patch 1 fixes a bug in the accounting of nr_dentry_unused in
> shrink_dcache_sb().
>
> Patch 2 removes the ____cacheline_aligned_in_smp tag from super_block
> LRU lists.
>
> Patch 3 adds the new nr_dentry_negative per-cpu counter.
>
> Various filesystem related tests were run and no statistically
> significant changes in performance outside of the possible noise range
> was observed.
>
> Waiman Long (3):
> fs/dcache: Fix incorrect nr_dentry_unused accounting in
> shrink_dcache_sb()
> fs: Don't need to put list_lru into its own cacheline
> fs/dcache: Track & report number of negative dentries
>
> Documentation/sysctl/fs.txt | 26 ++++++++++++++++----------
> fs/dcache.c | 38 +++++++++++++++++++++++++++++++++-----
> include/linux/dcache.h | 7 ++++---
> include/linux/fs.h | 9 +++++----
> 4 files changed, 58 insertions(+), 22 deletions(-)
>
Any comments on these patches. The first one actually is a bug fix.

Cheers,
Longman