linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Matt Mackall <mpm@selenic.com>
To: Christoph Lameter <clameter@sgi.com>
Cc: Nick Piggin <npiggin@suse.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Memory Management List <linux-mm@kvack.org>
Subject: Re: [patch 1/3] slob: rework freelist handling
Date: Thu, 24 May 2007 01:11:53 -0500	[thread overview]
Message-ID: <20070524061153.GP11115@waste.org> (raw)
In-Reply-To: <Pine.LNX.4.64.0705231544310.22857@schroedinger.engr.sgi.com>

On Wed, May 23, 2007 at 03:48:18PM -0700, Christoph Lameter wrote:
> On Wed, 23 May 2007, Matt Mackall wrote:
> 
> > On Wed, May 23, 2007 at 03:26:05PM -0700, Christoph Lameter wrote:
> > > On Wed, 23 May 2007, Matt Mackall wrote:
> > > 
> > > > On Wed, May 23, 2007 at 01:02:53PM -0700, Christoph Lameter wrote:
> > > > > On Wed, 23 May 2007, Matt Mackall wrote:
> > > > > 
> > > > > > Meanwhile this function is only called from swsusp.c.
> > > > > 
> > > > > NR_SLAB_UNRECLAIMABLE is also used in  __vm_enough_memory and 
> > > > > in zone reclaim (well ok thats only NUMA).
> > > > 
> > > > It's NR_SLAB_RECLAIMABLE in __vm_enough_memory. And that is always
> > > > zero with SLOB. There aren't any reclaimable slab pages.
> > > 
> > > All dentries and inodes are reclaimable via the shrinkers in vmscan.c. So 
> > > you are saying that SLOB does not allow dentry and inode reclaim?
> > 
> > No. I've already pointed out the EXACT CALL CHAIN that leads to dentry
> > reclaim. And it's independent of NR_SLAB_RECLAIMABLE and independent
> > of allocator.
> 
> So we have an allocator which is not following the rules... You are 
> arguing that dysfunctional behavior of SLOB does not have bad effects.
> 
> 1. We have allocated reclaimable objects via SLOB (dentry & inodes)
> 
> 2. We can reclaim them
> 
> 3. The allocator lies about it telling the VM that there is nothing 
> reclaimable because NR_SLAB_UNRECLAIMABLE is always 0.

4. The VM calls shrink_slabs anyway so the implied "rules" don't
actually exist (yet).

Because there's no guarantee that dcache or icache can actually be
shrunk _at all_, the VM can't do much of anything with
NR_SLAB_RECLAIMABLE. It could skip shrinking slabs if RECLAIMABLE=0
but as that never happens in practice with SLAB, the check's pretty
pointless. Nor can users glean any information from it, in fact
they'll probably be mislead!

So, here's three possible approaches to this issue:

A) Continue to ignore it. Doing something about it would add
complexity and it's not clear that it's a win.

B) Set NR_SLAB_RECLAIMABLE to 1. If the VM starts checking that to
decide whether it should call shrinkers, things will continue to work.
Increment and decrement NR_SLAB_UNRECLAIMABLE when we grow/shrink the
SLOB pool. This is probably 3 lines of code total.

C) Fake NR_SLAB_RECLAIMABLE/NR_SLAB_UNRECLAIMABLE based on actual
allocs and slab flags such that they sum to the total pages in the
SLOB pool. This would need a third global counter in bytes of how many
allocs we had in the "reclaimable" slabs. Probably 10-20 lines of
code of marginal utility. 

So, nothing insurmountable here. Just not convinced we should bother.
But the cost of B is so low, perhaps I might as well.

-- 
Mathematics is the supreme nostalgia of our time.

--
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:[~2007-05-24  6:11 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-22  7:39 Nick Piggin
2007-05-22  7:39 ` [patch 2/3] slob: remove bigblock tracking Nick Piggin
2007-05-22  7:41   ` [patch 3/3] slob: improved alignment handling Nick Piggin
2007-05-22 14:53 ` [patch 1/3] slob: rework freelist handling Matt Mackall
2007-05-22 19:18   ` Christoph Lameter
2007-05-23  3:06     ` Nick Piggin
2007-05-23  4:55       ` Christoph Lameter
2007-05-23  4:59         ` Nick Piggin
2007-05-23  5:01           ` Christoph Lameter
2007-05-23  5:03             ` Nick Piggin
2007-05-23  5:06               ` Christoph Lameter
2007-05-23  5:11                 ` Nick Piggin
2007-05-23  5:14                   ` Christoph Lameter
2007-05-23  5:22                     ` Nick Piggin
2007-05-23  5:28                       ` Christoph Lameter
2007-05-23  6:17                         ` Nick Piggin
2007-05-23  6:28                           ` Christoph Lameter
2007-05-23  7:12                             ` Nick Piggin
2007-05-23 17:03                               ` Christoph Lameter
2007-05-23 18:32                                 ` Matt Mackall
2007-05-23 19:15                                   ` Christoph Lameter
2007-05-23 19:58                                     ` Matt Mackall
2007-05-23 20:02                                       ` Christoph Lameter
2007-05-23 20:16                                         ` Christoph Lameter
2007-05-23 21:14                                           ` Matt Mackall
2007-05-23 21:06                                         ` Matt Mackall
2007-05-23 22:26                                           ` Christoph Lameter
2007-05-23 22:42                                             ` Matt Mackall
2007-05-23 22:48                                               ` Christoph Lameter
2007-05-24  2:05                                                 ` Nick Piggin
2007-05-24  2:45                                                   ` Christoph Lameter
2007-05-24  2:47                                                     ` Nick Piggin
2007-05-24  2:55                                                       ` Christoph Lameter
2007-05-24  3:17                                                         ` Nick Piggin
2007-05-24  2:49                                                   ` Christoph Lameter
2007-05-24  3:15                                                     ` Nick Piggin
2007-05-24  3:51                                                       ` Christoph Lameter
2007-05-24  6:11                                                 ` Matt Mackall [this message]
2007-05-24 16:36                                                   ` Christoph Lameter
2007-05-24 17:22                                                     ` Matt Mackall
2007-05-24 17:27                                                       ` Christoph Lameter
2007-05-24 17:44                                                         ` Matt Mackall
2007-05-23  6:38                           ` Christoph Lameter
2007-05-23  7:18                             ` Nick Piggin
2007-05-23 17:06                               ` Christoph Lameter
2007-05-23  7:46                           ` Nick Piggin
2007-05-23 17:07                             ` Christoph Lameter
2007-05-23 19:35                               ` Matt Mackall
2007-05-23 19:59                                 ` Christoph Lameter
2007-05-23 20:51                                   ` Matt Mackall
2007-05-24  3:39                                   ` Nick Piggin
2007-05-24  3:55                                     ` Christoph Lameter
2007-05-24  4:13                                       ` Nick Piggin
2007-05-24  4:23                                         ` Christoph Lameter
2007-05-24  4:31                                           ` Nick Piggin
2007-05-24  4:35                                             ` Christoph Lameter
2007-05-24  4:39                                               ` Nick Piggin
2007-05-24  4:46                                                 ` Christoph Lameter
2007-05-24  4:49                                                   ` Nick Piggin
2007-05-24  5:07                                                     ` Christoph Lameter
2007-05-24  3:24                               ` Nick Piggin
2007-05-24  3:49                                 ` Christoph Lameter
2007-05-24  4:01                                   ` Nick Piggin
2007-05-24  4:05                                     ` Christoph Lameter
2007-05-24  4:24                                       ` Nick Piggin
2007-05-23 18:04                             ` Christoph Lameter

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=20070524061153.GP11115@waste.org \
    --to=mpm@selenic.com \
    --cc=akpm@linux-foundation.org \
    --cc=clameter@sgi.com \
    --cc=linux-mm@kvack.org \
    --cc=npiggin@suse.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox