[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20111119003114.GA10179@stainedmachine.redhat.com>
Date: Sat, 19 Nov 2011 01:31:15 +0100
From: Petr Holasek <pholasek@...hat.com>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>,
"H. Peter Anvin" <hpa@...or.com>, linux-kernel@...r.kernel.org,
x86@...nel.org, Anton Arapov <anton@...hat.com>
Subject: Re: NUMA emulation x86_64: numa=fake parameter for custom nodes
distance
On Fri, 18 Nov 2011, Andrew Morton wrote:
> Date: Fri, 18 Nov 2011 11:53:36 -0800
> From: Andrew Morton <akpm@...ux-foundation.org>
> To: Petr Holasek <pholasek@...hat.com>
> Cc: Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>,
> "H. Peter Anvin" <hpa@...or.com>, linux-kernel@...r.kernel.org,
> x86@...nel.org, Anton Arapov <anton@...hat.com>
> Subject: Re: [PATCH 1/2] NUMA emulation x86_64: numa=fake parameter for
> custom nodes distance
>
> On Fri, 18 Nov 2011 12:55:07 +0100
> Petr Holasek <pholasek@...hat.com> wrote:
>
> > As default, when numa emulation is turned on, node distance table
> > uses physical distance, so for 4 nodes emulated on 1 physical table is
> >
> > node 0 1 2 3
> > 0: 10 10 10 10
> > 1: 10 10 10 10
> > 2: 10 10 10 10
> > 3: 10 10 10 10
> >
> > This patch adds new [distance] argument to
> >
> > numa=fake=<number/size of nodes>[,distance]
> >
> > When distance argument is used, it sets linear distance between nodes
> > like that:
> >
> > __distance__
> > ___|___ ____|___ ________ ________
> > | | | | | | | |
> > | node1 |---| node 2 |---| node 3 |---| node 4 |
> > |_______| |________| |________| |________|
> > | | |
> > | | |
> > |____distance * 2________| |
> > | |
> > |____________distance * 3______________|
> >
> > This feature might be useful for testing some numa awareness features in
> > both user and kernel spaces.
> >
>
> "might" is a red flag. We don't merge things which might be useful!
>
> *Is* it useful? If so then please tell us why and explain how it might
> be useful to others.
A lot of developers still have no access to large NUMA machines and
possibility of NUMA emulation could involve more of them to thinking
about NUMA awareness of their apps/kernel code.
>
> > @@ -404,6 +406,17 @@ void __init numa_emulation(struct numa_meminfo *numa_meminfo, int numa_dist_cnt)
> > if (emu_nid_to_phys[i] == NUMA_NO_NODE)
> > emu_nid_to_phys[i] = dfl_phys_nid;
> >
> > + /* load distance level parameter */
> > + dist_level = -1;
> > + c = strchr(emu_cmdline, ',');
> > + if (c) {
> > + c++;
> > + ret = kstrtoul(c, 10, &dist_level);
> > + if (ret < 0 || dist_level < LOCAL_DISTANCE ||
> > + dist_level * max_emu_nid > ULONG_MAX)
> > + dist_level = -1;
>
> If this happens, the user goofed and we should tell them, with a printk.
>
>
> [patch 2/2] adds the documentation for the feature and should be
> included in the same patch as the implementation.
Apologize, I'll send v2 of patch with printk() and documentation all-in-one
if it is necessary.
thanks,
Petr H
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists