From: Andrew Morton <akpm@linux-foundation.org>
To: Nick Piggin <npiggin@suse.de>
Cc: linux-mm@kvack.org, davem@davemloft.net
Subject: Re: [patch] radix-tree: avoid atomic allocations for preloaded insertions
Date: Wed, 7 Nov 2007 19:02:54 -0800 [thread overview]
Message-ID: <20071107190254.4e65812a.akpm@linux-foundation.org> (raw)
In-Reply-To: <20071108013723.GF3227@wotan.suse.de>
> On Thu, 8 Nov 2007 02:37:23 +0100 Nick Piggin <npiggin@suse.de> wrote:
> On Wed, Nov 07, 2007 at 05:09:23PM -0800, Andrew Morton wrote:
> > > On Thu, 8 Nov 2007 01:43:04 +0100 Nick Piggin <npiggin@suse.de> wrote:
>
> I wouldn't have thought it should slow things down _too much_. The radix
> tree nodes are those unusual allocations (like pagetables) that don't
> really need to be allocated cache-hot. (If that's where you're thinking
> the slowdown will come from...)
Well, it's simply more work. For each ratnode we presently do
test radix_tree_preloads, do nothing
kmem_cache_alloc()
now we do
test radix_tree_preloads
kmem_cache_alloc()
store it in radix_tree_preloads()
retrieve it from radix_tree_preloads()
it's not a _lot_ of work, but it's there. Mainly the new dirtying of this
cpu's radix_tree_preload all the time.
>
> > I'd have thought that a superior approach would be to just set
> > __GFP_NOWARN?
>
> But given that the potential performance loss is so small, I think it is
> more important to avoid using reserves that we need for important things
> like networking.
Spose so. We'll end up consuming a quarter of the atomic reserve in rare
situations for very short periods.
> Though even if we ignore the question of atomic allocations, I think it
> is really nice to be able to turn tree_lock into an innermost lock, and
> not transitively pollute it with zone->lock.
That would be nice if it were true. But you still have a
kmem_cache_alloc() in radix_tree_node_alloc()
--
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>
next prev parent reply other threads:[~2007-11-08 3:02 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-08 0:43 [patch] radix-tree: avoid atomic allocations for preloaded insertions Nick Piggin
2007-11-08 1:09 ` Andrew Morton
2007-11-08 1:34 ` David Miller, Andrew Morton
2007-11-08 1:41 ` Andrew Morton
2007-11-08 1:45 ` David Miller, Andrew Morton
2007-11-08 1:37 ` Nick Piggin
2007-11-08 3:02 ` Andrew Morton [this message]
2007-11-08 3:16 ` Nick Piggin
2007-11-08 4:12 ` Andrew Morton
2007-11-08 4:54 ` Nick Piggin
2007-11-08 5:02 ` Andrew Morton
2007-11-08 5:44 ` Nick Piggin
2007-11-08 6:02 ` Andrew Morton
2007-11-08 6:54 ` Nick Piggin
2007-11-08 6:56 ` [patch] nfs: use GFP_NOFS preloads for radix-tree insertion Nick Piggin
2007-11-13 10:55 ` Peter Zijlstra
2007-11-14 4:20 ` Nick Piggin
2007-11-14 9:06 ` Peter Zijlstra
2007-11-14 15:39 ` Nick Piggin
2007-11-08 11:57 ` [patch] radix-tree: avoid atomic allocations for preloaded insertions Peter Zijlstra
2007-11-08 20:37 ` Nick Piggin
2007-11-08 20:47 ` Peter Zijlstra
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=20071107190254.4e65812a.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--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 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.