From: Steve Lord <lord@xfs.org>
To: Andrew Morton <akpm@osdl.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: negative dentry_stat.nr_unused causes aggressive dcache pruning
Date: Thu, 09 Dec 2004 15:51:44 -0600 [thread overview]
Message-ID: <41B8C8F0.8000705@xfs.org> (raw)
In-Reply-To: <20041209131949.7862f0c8.akpm@osdl.org>
Andrew Morton wrote:
> Steve Lord <lord@xfs.org> wrote:
>>
>>I still do not know exactly how the count gets negative, but I tracked it
>>down to a user space app from emulex called HBAanywhere. The only thing I
>>can see this doing which might be related is attempting to open a lot of
>>non-existant /proc entries:
>>
>> /proc/scsi//120
>> /proc/scsi//121
>> etc...
>>
>>Yes there is a // in there.
>>
>>I ran with a BUG call if we manipulate nr_unused without the dcache lock
>>and it never tripped. All very wierd.
>>
>
>
> Is that 2.4 or 2.6?
>
> I'd be expecting a systematic counting bug. After all, nr_unused would
> normally be in the thousands and it'd take a lot of races to get that down
> to zero.
>
2.4.20-31.9 (aka Yea Olde Kernel), it is a redhat 9.0 update from the
fedora legacy project.
Something is pushing down hard on the dcache, I can watch the numbers
drop after boot up. They start out a few hundred but within a few
minutes they go negative.
I have a fiber channel driver from out the tree loaded (emulex lpfcdd)
but it does not appear to mess with dcache entries itself. Nothing else
from outside the tree. I have not had a chance to try 2.6 yet, not
even sure this code would run on 2.6.
I don't have the source of this app, so all I can do is strace it and
watch that. Actually I don't even need the app, so I can make the problem
go away, but it seems very odd that a user space program can do this.
If I start up the program and watch /proc/sys/fs/dentry-state every second
or so I see a sequence something like this:
slord@k4> cat /proc/sys/fs/dentry-state
368 22 45 0 0 0
slord@k4> cat /proc/sys/fs/dentry-state
364 18 45 0 0 0
slord@k4> cat /proc/sys/fs/dentry-state
363 16 45 0 0 0
slord@k4> cat /proc/sys/fs/dentry-state
361 14 45 0 0 0
slord@k4> cat /proc/sys/fs/dentry-state
361 14 45 0 0 0
slord@k4> cat /proc/sys/fs/dentry-state
359 13 45 0 0 0
slord@k4> cat /proc/sys/fs/dentry-state
359 13 45 0 0 0
slord@k4> cat /proc/sys/fs/dentry-state
359 13 45 0 0 0
slord@k4> cat /proc/sys/fs/dentry-state
359 13 45 0 0 0
slord@k4> cat /proc/sys/fs/dentry-state
348 5 45 0 0 0
slord@k4> cat /proc/sys/fs/dentry-state
332 -16 45 0 0 0
slord@k4> cat /proc/sys/fs/dentry-state
332 -16 45 0 0 0
slord@k4> cat /proc/sys/fs/dentry-state
332 -16 45 0 0 0
slord@k4> cat /proc/sys/fs/dentry-state
332 -16 45 0 0 0
slord@k4> cat /proc/sys/fs/dentry-state
332 -16 45 0 0 0
Its not like I am low on memory though:
slord@k4> free
total used free shared buffers cached
Mem: 1030108 244932 785176 0 15012 147808
-/+ buffers/cache: 82112 947996
Swap: 1574360 76 1574284
All I can see the program doing is attempting to open these non-existent
/proc entries and doing an ioctl FIBMAP on a /dev/ device bound to the fiber
channel driver. Of course, FIBMAP is not FIBMAP in this driver.
It looks like a steaming pile in there, and I think I am just going to
assume the driver is guilty until proven innocent.
Steve
prev parent reply other threads:[~2004-12-09 21:56 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-08 22:16 negative dentry_stat.nr_unused causes aggressive dcache pruning Steve Lord
2004-12-08 23:01 ` Greg Banks
2004-12-09 10:09 ` Andrew Morton
2004-12-09 16:33 ` Steve Lord
2004-12-09 20:54 ` Steve Lord
2004-12-09 21:19 ` Andrew Morton
2004-12-09 21:51 ` Steve Lord [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=41B8C8F0.8000705@xfs.org \
--to=lord@xfs.org \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.