All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joel Fuster <j@fuster.org>
To: Greg KH <greg@kroah.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: sysfs_dir_cache growing out of control
Date: Thu, 23 Aug 2007 20:44:10 -0400	[thread overview]
Message-ID: <46CE29DA.60409@fuster.org> (raw)
In-Reply-To: <20070823095933.GA6742@kroah.com>

Greg KH wrote:
> On Wed, Aug 22, 2007 at 11:56:44PM -0400, Joel Fuster wrote:
>> Joel Fuster wrote:
>>> Hi,
>>> I am running 2.6.22.3.  For reasons that escape me, over time (days) the 
>>> sysfs_dir_cache, dentry, and inode_cache SLUB entries grow until they 
>>> consume all the memory on my system, requiring a reboot.
> 
> Hm, those items should consume all the memory, but it should be freed if
> you have memory pressure from other places.  Does it cause the machine
> to lock up, or you just got scared when seeing them?
> 
Right.  The problem is that the memory never seems to get freed no 
matter what I do.  I've tried setting /proc/sys/vm/vfs_cache_pressure to 
10000, but after a few days all my programs are running out of swap and 
I have to reboot to get things back to a usable state.

> Oh, and does the same thing happen if you do not use SLUB, but rather
> the older SLAB?

OK I just rebuilt 2.6.22.3 with SLAB and I seem to be getting the same 
result..obviously I haven't waited several days, but 
sysfs_dir_cache/dentry/inode_cache grow continuously when scanbuttond is 
running, and stop growing when it isn't.


>>
>> An strace of one poll loop for scanbuttond follows:
>>
>>
>> nanosleep({0, 333000000}, NULL)         = 0
>> open("/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 1
>> fstat(1, {st_mode=S_IFDIR|0755, st_size=80, ...}) = 0
>> fcntl(1, F_SETFD, FD_CLOEXEC)           = 0
>> getdents(1, /* 4 entries */, 4096)      = 96
>> getdents(1, /* 0 entries */, 4096)      = 0
>> close(1)                                = 0
>> open("/dev/bus/usb/002", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 1
>> fstat(1, {st_mode=S_IFDIR|0755, st_size=60, ...}) = 0
>> fcntl(1, F_SETFD, FD_CLOEXEC)           = 0
>> getdents(1, /* 3 entries */, 4096)      = 72
>> open("/dev/bus/usb/002/001", O_RDWR)    = -1 EACCES (Permission denied)
>> open("/dev/bus/usb/002/001", O_RDONLY)  = 2
>> ioctl(2, USBDEVFS_CONNECTINFO, 0x7fffb3a08420) = -1 EPERM (Operation not 
>> permitted)
> 
> <snip>
> 
> I don't see any sysfs accesses there, only usbfs accesses.

Yes, I don't know enough to understand why this would affect 
sysfs_dir_cache, but there definitely seems to be a connection.

Thanks for the help,

Joel


  reply	other threads:[~2007-08-24  0:44 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-23  0:25 sysfs_dir_cache growing out of control Joel Fuster
2007-08-23  3:56 ` Joel Fuster
2007-08-23  9:59   ` Greg KH
2007-08-24  0:44     ` Joel Fuster [this message]
2007-08-24  0:54       ` Greg KH
2007-08-24  1:26         ` Gabriel C
2007-09-05 16:03           ` Andrew Morton

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=46CE29DA.60409@fuster.org \
    --to=j@fuster.org \
    --cc=greg@kroah.com \
    --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.