All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Sandeen <sandeen@redhat.com>
To: Andreas Gruenbacher <agruen@suse.de>
Cc: Wang Sheng-Hui <crosslonelyover@gmail.com>,
	Christoph Hellwig <hch@infradead.org>,
	linux-fsdevel@vger.kernel.org, viro@zeniv.linux.org.uk,
	linux-mm@kvack.org, linux-ext4 <linux-ext4@vger.kernel.org>,
	kernel-janitors <kernel-janitors@vger.kernel.org>
Subject: Re: [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan
Date: Tue, 20 Jul 2010 15:13:56 +0000	[thread overview]
Message-ID: <4C45BD34.8030905@redhat.com> (raw)
In-Reply-To: <201007192039.06670.agruen@suse.de>

Andreas Gruenbacher wrote:
> On Sunday 18 July 2010 08:36:59 Wang Sheng-Hui wrote:
>> I regenerated the patch. Please check it.
> 
> The logic for calculating how many objects to free is still wrong: 
> mb_cache_shrink_fn returns the number of entries scaled by 
> sysctl_vfs_cache_pressure / 100.  It should also scale nr_to_scan by the 
> inverse of that.  The sysctl_vfs_cache_pressure = 0 case (never scale) may 
> require special attention.

I don't think that's right:

vfs_cache_pressure
------------------

Controls the tendency of the kernel to reclaim the memory which is used for
caching of directory and inode objects.

At the default value of vfs_cache_pressure\x100 the kernel will attempt to
reclaim dentries and inodes at a "fair" rate with respect to pagecache and
swapcache reclaim.  Decreasing vfs_cache_pressure causes the kernel to prefer
to retain dentry and inode caches. When vfs_cache_pressure=0, the kernel will
never reclaim dentries and inodes due to memory pressure and this can easily
lead to out-of-memory conditions. Increasing vfs_cache_pressure beyond 100
causes the kernel to prefer to reclaim dentries and inodes.


0 means "never reclaim," it doesn't mean "never scale."

As for nr_to_scan, after the first call, the shrinker has a scaled
version of the total count, so the requested nr_to_scan on the
next call is already scaled based on that.

I think the logic in the mbcache shrinker is fine.

-Eric

> See dcache_shrinker() in fs/dcache.c.



> 
> Thanks,
> Andreas


WARNING: multiple messages have this Message-ID (diff)
From: Eric Sandeen <sandeen@redhat.com>
To: Andreas Gruenbacher <agruen@suse.de>
Cc: Wang Sheng-Hui <crosslonelyover@gmail.com>,
	Christoph Hellwig <hch@infradead.org>,
	linux-fsdevel@vger.kernel.org, viro@zeniv.linux.org.uk,
	linux-mm@kvack.org, linux-ext4 <linux-ext4@vger.kernel.org>,
	kernel-janitors <kernel-janitors@vger.kernel.org>
Subject: Re: [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > 0
Date: Tue, 20 Jul 2010 10:13:56 -0500	[thread overview]
Message-ID: <4C45BD34.8030905@redhat.com> (raw)
In-Reply-To: <201007192039.06670.agruen@suse.de>

Andreas Gruenbacher wrote:
> On Sunday 18 July 2010 08:36:59 Wang Sheng-Hui wrote:
>> I regenerated the patch. Please check it.
> 
> The logic for calculating how many objects to free is still wrong: 
> mb_cache_shrink_fn returns the number of entries scaled by 
> sysctl_vfs_cache_pressure / 100.  It should also scale nr_to_scan by the 
> inverse of that.  The sysctl_vfs_cache_pressure == 0 case (never scale) may 
> require special attention.

I don't think that's right:

vfs_cache_pressure
------------------

Controls the tendency of the kernel to reclaim the memory which is used for
caching of directory and inode objects.

At the default value of vfs_cache_pressure=100 the kernel will attempt to
reclaim dentries and inodes at a "fair" rate with respect to pagecache and
swapcache reclaim.  Decreasing vfs_cache_pressure causes the kernel to prefer
to retain dentry and inode caches. When vfs_cache_pressure=0, the kernel will
never reclaim dentries and inodes due to memory pressure and this can easily
lead to out-of-memory conditions. Increasing vfs_cache_pressure beyond 100
causes the kernel to prefer to reclaim dentries and inodes.


0 means "never reclaim," it doesn't mean "never scale."

As for nr_to_scan, after the first call, the shrinker has a scaled
version of the total count, so the requested nr_to_scan on the
next call is already scaled based on that.

I think the logic in the mbcache shrinker is fine.

-Eric

> See dcache_shrinker() in fs/dcache.c.



> 
> Thanks,
> Andreas

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2010-07-20 15:13 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-18  1:01 [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > Wang Sheng-Hui
2010-07-18  1:01 ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > 0 Wang Sheng-Hui
2010-07-18  1:01 ` Wang Sheng-Hui
2010-07-18  4:06 ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan Eric Sandeen
2010-07-18  4:06   ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > 0 Eric Sandeen
2010-07-18  4:06   ` Eric Sandeen
2010-07-18  6:01   ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan Christoph Hellwig
2010-07-18  6:01     ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > 0 Christoph Hellwig
2010-07-18  6:36     ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan Wang Sheng-Hui
2010-07-18  6:36       ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > 0 Wang Sheng-Hui
2010-07-18  6:36       ` Wang Sheng-Hui
2010-07-19 18:39       ` Andreas Gruenbacher
2010-07-19 18:39         ` Andreas Gruenbacher
2010-07-20  1:02         ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > shenghui
2010-07-20  1:02           ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > 0 shenghui
2010-07-20  1:04           ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > shenghui
2010-07-20  1:04             ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > 0 shenghui
2010-07-20  1:04             ` shenghui
2010-07-20 15:13         ` Eric Sandeen [this message]
2010-07-20 15:13           ` Eric Sandeen
2010-07-20 16:34           ` Andreas Gruenbacher
2010-07-20 16:34             ` Andreas Gruenbacher
2010-07-20 16:34             ` Andreas Gruenbacher
2010-07-19 18:40       ` Andreas Gruenbacher
2010-07-19 18:40         ` Andreas Gruenbacher
2010-07-21 10:53 ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > Wang Sheng-Hui
2010-07-21 10:53   ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > 0 Wang Sheng-Hui
2010-07-21 10:53   ` Wang Sheng-Hui
2010-07-21 10:53   ` Wang Sheng-Hui
2010-07-21 14:00   ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan Eric Sandeen
2010-07-21 14:00     ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > 0 Eric Sandeen
2010-07-21 14:00     ` Eric Sandeen
2010-07-19 16:19     ` [PATCH 1/2] mbcache: Remove unused features Andreas Gruenbacher
2010-07-19 16:19       ` Andreas Gruenbacher
2010-07-19 16:19       ` Andreas Gruenbacher
2010-07-21 23:18       ` Andreas Dilger
2010-07-22  0:07         ` Andreas Gruenbacher
2010-07-21 17:44     ` [PATCH 2/2] mbcache: fix shrinker function return value Andreas Gruenbacher
2010-07-21 17:44       ` Andreas Gruenbacher
2010-07-21 17:44       ` Andreas Gruenbacher
2010-07-21 17:57     ` [PATCH 0/2] mbcache fixes Andreas Gruenbacher
2010-07-21 17:57       ` Andreas Gruenbacher
2010-07-21 17:57       ` Andreas Gruenbacher
2010-07-21 23:22       ` Al Viro
2010-07-21 23:22         ` Al Viro
2010-07-21 23:22         ` Al Viro
2010-07-22  0:54 ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan Wang Sheng-Hui
2010-07-22  0:54   ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > 0 Wang Sheng-Hui
2010-07-22  0:54   ` Wang Sheng-Hui
2010-07-22  0:54   ` Wang Sheng-Hui
2010-07-22  1:06   ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > shenghui
2010-07-22  1:06     ` [PATCH] fix return value for mb_cache_shrink_fn when nr_to_scan > 0 shenghui
2010-07-22  1:06     ` shenghui
2010-07-22  1:06     ` shenghui

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=4C45BD34.8030905@redhat.com \
    --to=sandeen@redhat.com \
    --cc=agruen@suse.de \
    --cc=crosslonelyover@gmail.com \
    --cc=hch@infradead.org \
    --cc=kernel-janitors@vger.kernel.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=viro@zeniv.linux.org.uk \
    /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.