Re: [PATCH 1/2] fs/dcache: Track & report number of negative dentries

From: Waiman Long
Date: Fri Aug 31 2018 - 11:03:37 EST


On 08/31/2018 10:31 AM, Matthew Wilcox wrote:
> On Wed, Aug 29, 2018 at 10:11:53AM +1000, Dave Chinner wrote:
>>> +++ b/Documentation/sysctl/fs.txt
>>> @@ -63,19 +63,26 @@ struct {
>>> int nr_unused;
>>> int age_limit; /* age in seconds */
>>> int want_pages; /* pages requested by system */
>>> - int dummy[2];
>>> + int nr_negative; /* # of unused negative dentries */
>>> + int dummy;
>>> } dentry_stat = {0, 0, 45, 0,};
>> That's not a backwards compatible ABI change. Those dummy fields
>> used to represent some metric we no longer calculate, and there are
>> probably still monitoring apps out there that think they still have
>> the old meaning. i.e. they are still visible to userspace:
> I believe you are incorrect. dentry_stat was introduced in 2.1.60 with
> this hunk:
>
> +struct {
> + int nr_dentry;
> + int nr_unused;
> + int age_limit; /* age in seconds */
> + int want_pages; /* pages requested by system */
> + int dummy[2];
> +} dentry_stat = {0, 0, 45, 0,};
> +
>
> Looking through the rest of the dentry_stat changes in the 2.1.60 release,
> it's not replacing anything, it's adding new information.

Thanks for looking up earlier non-git source tree. If that is the case,
the dummy[2] was there just for future extension purpose. It should be
perfectly fine to reuse one of the dummy entry for negative dentry count
then as no sane application would have checked the last 2 entries of
dentry-state and do dummy things if they are non-zero.

Cheers,
Longman