From: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
To: Christoph Lameter <cl@linux-foundation.org>
Cc: linux-arch@vger.kernel.org, linux-mm@kvack.org,
linux-numa@vger.kernel.org, Tejun Heo <tj@kernel.org>,
Mel Gorman <mel@csn.ul.ie>, Andi Kleen <andi@firstfloor.org>,
Nick Piggin <npiggin@suse.de>,
David Rientjes <rientjes@google.com>,
akpm@linux-foundation.org, eric.whitney@hp.com
Subject: Re: [PATCH/RFC 3/8] numa: x86_64: use generic percpu var for numa_node_id() implementation
Date: Thu, 04 Mar 2010 15:42:48 -0500 [thread overview]
Message-ID: <1267735368.29020.104.camel@useless.americas.hpqcorp.net> (raw)
In-Reply-To: <alpine.DEB.2.00.1003041245280.21776@router.home>
On Thu, 2010-03-04 at 12:47 -0600, Christoph Lameter wrote:
> On Thu, 4 Mar 2010, Lee Schermerhorn wrote:
>
> > Index: linux-2.6.33-mmotm-100302-1838/arch/x86/include/asm/percpu.h
> > ===================================================================
> > --- linux-2.6.33-mmotm-100302-1838.orig/arch/x86/include/asm/percpu.h
> > +++ linux-2.6.33-mmotm-100302-1838/arch/x86/include/asm/percpu.h
> > @@ -208,10 +208,12 @@ do { \
> > #define percpu_or(var, val) percpu_to_op("or", var, val)
> > #define percpu_xor(var, val) percpu_to_op("xor", var, val)
> >
> > +#define __this_cpu_read(pcp) percpu_from_op("mov", (pcp), "m"(pcp))
> > #define __this_cpu_read_1(pcp) percpu_from_op("mov", (pcp), "m"(pcp))
> > #define __this_cpu_read_2(pcp) percpu_from_op("mov", (pcp), "m"(pcp))
> > #define __this_cpu_read_4(pcp) percpu_from_op("mov", (pcp), "m"(pcp))
> >
> > +#define __this_cpu_write(pcp, val) percpu_to_op("mov", (pcp), val)
> > #define __this_cpu_write_1(pcp, val) percpu_to_op("mov", (pcp), val)
> > #define __this_cpu_write_2(pcp, val) percpu_to_op("mov", (pcp), val)
> > #define __this_cpu_write_4(pcp, val) percpu_to_op("mov", (pcp), val)
>
>
> The functions added are already defined in linux/percpu.h and their
> definition here is wrong since the u64 case is not handled (percpu.h does
> that correctly).
Well, in linux/percpu-defs.h after the first patch in this series, but
x86 is overriding it with the percpu_to_op() implementation. You're
saying that the x86 percpu_to_op() macro doesn't handle 8-byte 'pcp'
operands? It appears to handle sizes 1, 2, 4 and 8.
But, I just tried the series with the above two definitions removed and
the kernel builds and boots. And runs the hackbench test even faster.
2.6.33-mmotm-100302-1838 on 8x6 AMD x86_64 -- hackbench 400 process 200
[avg of 10 runs]:
no add'l patches: 3.332
my V3 series: 3.148
V3 + generic __this_cpu_xxx(): 3.083 [removed x86 defs of
__this_cpu_xxx()]
So, I'll remove those definitions in V4.
Do we want to retain the x86 definitions of __this_cpu_xxx_[124]() or
remove those and let the generic definitions handle them?
Lee
>
> --
> 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>
--
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:[~2010-03-04 20:43 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-04 17:06 [PATCH/RFC 0/8] Numa: Use Generic Per-cpu Variables for numa_*_id() Lee Schermerhorn
2010-03-04 17:07 ` [PATCH/RFC 1/8] numa: prep: move generic percpu interface definitions to percpu-defs.h Lee Schermerhorn
2010-03-09 8:46 ` Tejun Heo
2010-03-09 14:13 ` Lee Schermerhorn
2010-03-10 9:06 ` Tejun Heo
2010-03-04 17:07 ` [PATCH/RFC 2/8] numa: add generic percpu var implementation of numa_node_id() Lee Schermerhorn
2010-03-04 18:44 ` Christoph Lameter
2010-03-04 17:07 ` [PATCH/RFC 3/8] numa: x86_64: use generic percpu var for numa_node_id() implementation Lee Schermerhorn
2010-03-04 18:47 ` Christoph Lameter
2010-03-04 20:42 ` Lee Schermerhorn [this message]
2010-03-04 21:16 ` Christoph Lameter
2010-03-04 17:07 ` [PATCH/RFC 4/8] numa: ia64: use generic percpu var " Lee Schermerhorn
2010-03-04 18:48 ` Christoph Lameter
2010-03-04 17:08 ` [PATCH/RFC 5/8] numa: Introduce numa_mem_id()- effective local memory node id Lee Schermerhorn
2010-03-04 18:52 ` Christoph Lameter
2010-03-04 19:28 ` Lee Schermerhorn
2010-03-04 17:08 ` [PATCH/RFC 6/8] numa: ia64: support numa_mem_id() for memoryless nodes Lee Schermerhorn
2010-03-04 17:08 ` [PATCH/RFC 7/8] numa: slab: use numa_mem_id() for slab local memory node Lee Schermerhorn
2010-03-04 17:08 ` [PATCH/RFC 8/8] numa: in-kernel profiling -- support memoryless nodes Lee Schermerhorn
2010-03-05 1:19 ` [PATCH/RFC 0/8] Numa: Use Generic Per-cpu Variables for numa_*_id() KAMEZAWA Hiroyuki
2010-03-05 1:25 ` Lee Schermerhorn
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=1267735368.29020.104.camel@useless.americas.hpqcorp.net \
--to=lee.schermerhorn@hp.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=cl@linux-foundation.org \
--cc=eric.whitney@hp.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-numa@vger.kernel.org \
--cc=mel@csn.ul.ie \
--cc=npiggin@suse.de \
--cc=rientjes@google.com \
--cc=tj@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox