All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Dobson <colpatch@us.ibm.com>
To: Andrew Morton <akpm@osdl.org>
Cc: Christoph Lameter <clameter@engr.sgi.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	shai@scalex86.org
Subject: Re: NUMA aware slab allocator V2
Date: Tue, 17 May 2005 16:29:12 -0700	[thread overview]
Message-ID: <428A7E48.6060909@us.ibm.com> (raw)
In-Reply-To: <20050513000648.7d341710.akpm@osdl.org>

Excuse for the week-late response...

Andrew Morton wrote:
> Christoph Lameter <clameter@engr.sgi.com> wrote:
> 
>> Could we boot the box without quiet so that we can get better debug
>> messages?
> 
> 
> It didn't produce anything interesting.  For some reason the console output
> stops when start_kernel() runs console_init() (I guess it all comes out
> later) so the machine is running blind when we run kmem_cache_init(). 
> Irritating.  I just moved the console_init() call to happen later on.
> 
> It's going BUG() in kmem_cache_init()->set_up_list3s->is_node_online
> because for some reason the !CONFIG_NUMA ppc build has MAX_NUMNODES=16,
> even though there's only one node.
> 
> Doing
> 
> #define is_node_online(node) node_online(node)

As Dave Hansen mentioned elsewhere in this thread, there is no need to
define this is_node_online() macro, as node_online() does EXACTLY the same
thing (minus the BUG() which is probably overkill).


> unconditionally fixes that up (your patch shuld be using
> for_each_online_node() everywhere?) but it oopses later - I think it's the
> first time kmem_cache_alloc() is called.

Christoph should replace all the for (i = 0; i < MAX_NUMNODES; i++) loops
with for_each_node(i) and the one loop that does this:
for (i = 0; i < MAX_NUMNODES; i++) {
	if (!node_online(i))
		continue;
(or something similar) with for_each_online_node(i)

Also, there is a similar loop for CPUs which should be replaced with
for_each_online_cpu(i).

These for_each_FOO macros are cleaner and less likely to break in the
future, since we can simply modify the one definition if the way to
itterate over nodes/cpus changes, rather than auditing 100 open coded
implementations and trying to determine the intent of the loop's author.

-Matt

WARNING: multiple messages have this Message-ID (diff)
From: Matthew Dobson <colpatch@us.ibm.com>
To: Andrew Morton <akpm@osdl.org>
Cc: Christoph Lameter <clameter@engr.sgi.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	shai@scalex86.org
Subject: Re: NUMA aware slab allocator V2
Date: Tue, 17 May 2005 16:29:12 -0700	[thread overview]
Message-ID: <428A7E48.6060909@us.ibm.com> (raw)
In-Reply-To: <20050513000648.7d341710.akpm@osdl.org>

Excuse for the week-late response...

Andrew Morton wrote:
> Christoph Lameter <clameter@engr.sgi.com> wrote:
> 
>> Could we boot the box without quiet so that we can get better debug
>> messages?
> 
> 
> It didn't produce anything interesting.  For some reason the console output
> stops when start_kernel() runs console_init() (I guess it all comes out
> later) so the machine is running blind when we run kmem_cache_init(). 
> Irritating.  I just moved the console_init() call to happen later on.
> 
> It's going BUG() in kmem_cache_init()->set_up_list3s->is_node_online
> because for some reason the !CONFIG_NUMA ppc build has MAX_NUMNODES=16,
> even though there's only one node.
> 
> Doing
> 
> #define is_node_online(node) node_online(node)

As Dave Hansen mentioned elsewhere in this thread, there is no need to
define this is_node_online() macro, as node_online() does EXACTLY the same
thing (minus the BUG() which is probably overkill).


> unconditionally fixes that up (your patch shuld be using
> for_each_online_node() everywhere?) but it oopses later - I think it's the
> first time kmem_cache_alloc() is called.

Christoph should replace all the for (i = 0; i < MAX_NUMNODES; i++) loops
with for_each_node(i) and the one loop that does this:
for (i = 0; i < MAX_NUMNODES; i++) {
	if (!node_online(i))
		continue;
(or something similar) with for_each_online_node(i)

Also, there is a similar loop for CPUs which should be replaced with
for_each_online_cpu(i).

These for_each_FOO macros are cleaner and less likely to break in the
future, since we can simply modify the one definition if the way to
itterate over nodes/cpus changes, rather than auditing 100 open coded
implementations and trying to determine the intent of the loop's author.

-Matt
--
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:"aart@kvack.org"> aart@kvack.org </a>

  parent reply	other threads:[~2005-05-17 23:30 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-11 15:17 NUMA aware slab allocator V2 Christoph Lameter
2005-05-11 15:17 ` Christoph Lameter
2005-05-11 15:46 ` Jack Steiner
2005-05-11 15:46   ` Jack Steiner
2005-05-12  7:04 ` Andrew Morton
2005-05-12  7:04   ` Andrew Morton
2005-05-12  9:39   ` Niraj kumar
2005-05-12  9:39     ` Niraj kumar
2005-05-12 20:02   ` Christoph Lameter
2005-05-12 20:02     ` Christoph Lameter
2005-05-12 20:22     ` Andrew Morton
2005-05-12 20:22       ` Andrew Morton
2005-05-13  7:06     ` Andrew Morton
2005-05-13  7:06       ` Andrew Morton
2005-05-13 11:21       ` Christoph Lameter
2005-05-13 11:21         ` Christoph Lameter
2005-05-13 11:33         ` Andrew Morton
2005-05-13 11:33           ` Andrew Morton
2005-05-13 11:37           ` Christoph Lameter
2005-05-13 11:37             ` Christoph Lameter
2005-05-13 13:56             ` Dave Hansen
2005-05-13 13:56               ` Dave Hansen
2005-05-13 16:20               ` Christoph Lameter
2005-05-13 16:20                 ` Christoph Lameter
2005-05-14  1:24           ` NUMA aware slab allocator V3 Christoph Lameter
2005-05-14  1:24             ` Christoph Lameter
2005-05-14  7:42             ` Andrew Morton
2005-05-14  7:42               ` Andrew Morton
2005-05-14 16:24               ` Christoph Lameter
2005-05-14 16:24                 ` Christoph Lameter
2005-05-16  5:00                 ` Andrew Morton
2005-05-16  5:00                   ` Andrew Morton
2005-05-16 13:52             ` Dave Hansen
2005-05-16 13:52               ` Dave Hansen
2005-05-16 16:47               ` Christoph Lameter
2005-05-16 16:47                 ` Christoph Lameter
2005-05-16 17:22                 ` Dave Hansen
2005-05-16 17:22                   ` Dave Hansen
2005-05-16 17:54                   ` Christoph Lameter
2005-05-16 17:54                     ` Christoph Lameter
2005-05-16 18:08                     ` Martin J. Bligh
2005-05-16 18:08                       ` Martin J. Bligh
2005-05-16 21:10                       ` Jesse Barnes
2005-05-16 21:10                         ` Jesse Barnes
2005-05-16 21:21                         ` Martin J. Bligh
2005-05-16 21:21                           ` Martin J. Bligh
2005-05-17  0:14                           ` Christoph Lameter
2005-05-17  0:14                             ` Christoph Lameter
2005-05-17  0:26                             ` Dave Hansen
2005-05-17  0:26                               ` Dave Hansen
2005-05-17 23:36                               ` Matthew Dobson
2005-05-17 23:36                                 ` Matthew Dobson
2005-05-17 23:49                                 ` Christoph Lameter
2005-05-17 23:49                                   ` Christoph Lameter
2005-05-18 17:27                                   ` Matthew Dobson
2005-05-18 17:27                                     ` Matthew Dobson
2005-05-18 17:48                                     ` Christoph Lameter
2005-05-18 17:48                                       ` Christoph Lameter
2005-05-18 21:15                                       ` Matthew Dobson
2005-05-18 21:15                                         ` Matthew Dobson
2005-05-18 21:40                                         ` Christoph Lameter
2005-05-18 21:40                                           ` Christoph Lameter
2005-05-19  5:07                                           ` Christoph Lameter
2005-05-19  5:07                                             ` Christoph Lameter
2005-05-19 16:14                                             ` Jesse Barnes
2005-05-19 16:14                                               ` Jesse Barnes
2005-05-19 19:03                                             ` Matthew Dobson
2005-05-19 19:03                                               ` Matthew Dobson
2005-05-19 21:46                                             ` Matthew Dobson
2005-05-20 19:03                                             ` Matthew Dobson
2005-05-20 19:03                                               ` Matthew Dobson
2005-05-20 19:23                                               ` Christoph Lameter
2005-05-20 19:23                                                 ` Christoph Lameter
2005-05-20 20:20                                                 ` Matthew Dobson
2005-05-20 20:20                                                   ` Matthew Dobson
2005-05-20 21:30                                                 ` Matthew Dobson
2005-05-20 21:30                                                   ` Matthew Dobson
2005-05-20 23:42                                                   ` Christoph Lameter
2005-05-20 23:42                                                     ` Christoph Lameter
2005-05-24 21:37                                                   ` Christoph Lameter
2005-05-24 21:37                                                     ` Christoph Lameter
2005-05-24 23:02                                                     ` Matthew Dobson
2005-05-24 23:02                                                       ` Matthew Dobson
2005-05-25  5:21                                                       ` Christoph Lameter
2005-05-25  5:21                                                         ` Christoph Lameter
2005-05-25 18:27                                                         ` Matthew Dobson
2005-05-25 18:27                                                           ` Matthew Dobson
2005-05-25 21:03                                                           ` Christoph Lameter
2005-05-25 21:03                                                             ` Christoph Lameter
2005-05-26  6:48                                                             ` Martin J. Bligh
2005-05-26  6:48                                                               ` Martin J. Bligh
2005-05-28  1:59                                                       ` NUMA aware slab allocator V4 Christoph Lameter
2005-05-28  1:59                                                         ` Christoph Lameter
2005-05-16 21:54                         ` NUMA aware slab allocator V3 Dave Hansen
2005-05-16 21:54                           ` Dave Hansen
2005-05-16 18:12                     ` Dave Hansen
2005-05-16 18:12                       ` Dave Hansen
2005-05-13 13:46         ` NUMA aware slab allocator V2 Dave Hansen
2005-05-13 13:46           ` Dave Hansen
2005-05-17 23:29       ` Matthew Dobson [this message]
2005-05-17 23:29         ` Matthew Dobson
2005-05-18  1:07         ` Christoph Lameter
2005-05-18  1:07           ` Christoph Lameter
2005-05-12 21:49 ` Robin Holt
2005-05-12 21:49   ` Robin Holt

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=428A7E48.6060909@us.ibm.com \
    --to=colpatch@us.ibm.com \
    --cc=akpm@osdl.org \
    --cc=clameter@engr.sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=shai@scalex86.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 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.