From: Andrew Morton <akpm@linux-foundation.org>
To: Christoph Lameter <clameter@sgi.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [QUICKLIST 1/5] Quicklists for page table pages V4
Date: Mon, 26 Mar 2007 10:26:51 -0800 [thread overview]
Message-ID: <20070326102651.6d59207b.akpm@linux-foundation.org> (raw)
In-Reply-To: <Pine.LNX.4.64.0703260938520.3297@schroedinger.engr.sgi.com>
On Mon, 26 Mar 2007 09:52:17 -0700 (PDT) Christoph Lameter <clameter@sgi.com> wrote:
> On Fri, 23 Mar 2007, Andrew Morton wrote:
>
> > On Fri, 23 Mar 2007 10:54:12 -0700 (PDT) Christoph Lameter <clameter@sgi.com> wrote:
> >
> > > Here are the results of aim9 tests on x86_64. There are some minor performance
> > > improvements and some fluctuations.
> >
> > There are a lot of numbers there - what do they tell us?
>
> That there are performance improvements because of quicklists.
Christoph, you can continue to be obtuse, and I can continue to ignore
these patches until
a) it has been demonstrated that this patch is superior to simply removing
the quicklists and
b) we understand why the below simple modification crashes i386.
diff -puN include/linux/quicklist.h~qlhack include/linux/quicklist.h
--- a/include/linux/quicklist.h~qlhack
+++ a/include/linux/quicklist.h
@@ -32,45 +32,17 @@ DECLARE_PER_CPU(struct quicklist, quickl
*/
static inline void *quicklist_alloc(int nr, gfp_t flags, void (*ctor)(void *))
{
- struct quicklist *q;
- void **p = NULL;
-
- q =&get_cpu_var(quicklist)[nr];
- p = q->page;
- if (likely(p)) {
- q->page = p[0];
- p[0] = NULL;
- q->nr_pages--;
- }
- put_cpu_var(quicklist);
- if (likely(p))
- return p;
-
- p = (void *)__get_free_page(flags | __GFP_ZERO);
+ void *p = (void *)__get_free_page(flags | __GFP_ZERO);
if (ctor && p)
ctor(p);
return p;
}
-static inline void quicklist_free(int nr, void (*dtor)(void *), void *pp)
+static inline void quicklist_free(int nr, void (*dtor)(void *), void *p)
{
- struct quicklist *q;
- void **p = pp;
- struct page *page = virt_to_page(p);
- int nid = page_to_nid(page);
-
- if (unlikely(nid != numa_node_id())) {
- if (dtor)
- dtor(p);
- free_page((unsigned long)p);
- return;
- }
-
- q = &get_cpu_var(quicklist)[nr];
- p[0] = q->page;
- q->page = p;
- q->nr_pages++;
- put_cpu_var(quicklist);
+ if (dtor)
+ dtor(p);
+ free_page((unsigned long)p);
}
void quicklist_trim(int nr, void (*dtor)(void *),
@@ -81,4 +53,3 @@ unsigned long quicklist_total_size(void)
#endif
#endif /* LINUX_QUICKLIST_H */
-
_
--
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-03-26 18:26 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-23 6:28 Christoph Lameter
2007-03-23 6:28 ` [QUICKLIST 2/5] Quicklist support for IA64 Christoph Lameter
2007-03-23 6:28 ` [QUICKLIST 3/5] Quicklist support for i386 Christoph Lameter
2007-03-23 6:28 ` [QUICKLIST 4/5] Quicklist support for x86_64 Christoph Lameter
2007-03-23 6:29 ` [QUICKLIST 5/5] Quicklist support for sparc64 Christoph Lameter, David Miller
2007-03-23 6:39 ` [QUICKLIST 1/5] Quicklists for page table pages V4 Andrew Morton
2007-03-23 6:52 ` Christoph Lameter
2007-03-23 7:48 ` Andrew Morton
2007-03-23 11:23 ` William Lee Irwin III
2007-03-23 14:58 ` Christoph Lameter
2007-03-23 11:29 ` William Lee Irwin III
2007-03-23 14:57 ` William Lee Irwin III
2007-03-23 19:17 ` William Lee Irwin III
2007-03-23 11:39 ` Nick Piggin
2007-03-24 5:14 ` Andrew Morton
2007-03-23 15:08 ` Christoph Lameter
2007-03-23 17:54 ` Christoph Lameter
2007-03-24 6:21 ` Andrew Morton
2007-03-26 16:52 ` Christoph Lameter
2007-03-26 18:14 ` Christoph Lameter
2007-03-26 18:26 ` Andrew Morton [this message]
2007-03-27 1:06 ` William Lee Irwin III
2007-03-27 1:22 ` Christoph Lameter
2007-03-27 1:45 ` David Miller, William Lee Irwin III
2007-03-27 11:19 ` William Lee Irwin III
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=20070326102651.6d59207b.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=clameter@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox