mbox series

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

Message ID 1536773742-32687-1-git-send-email-longman@redhat.com (mailing list archive)
Headers show
Series fs/dcache: Track # of negative dentries | expand

Message

Waiman Long Sept. 12, 2018, 5:35 p.m. UTC
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(-)

Comments

Waiman Long Oct. 5, 2018, 2:55 p.m. UTC | #1
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