All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@osdl.org>
To: Chuck Ebbert <76306.1226@compuserve.com>
Cc: pj@sgi.com, heiko.carstens@de.ibm.com, wli@holomorphy.com,
	ak@muc.de, mingo@elte.hu, torvalds@osdl.org,
	linux-kernel@vger.kernel.org, riel@redhat.com,
	dada1@cosmobay.com
Subject: Re: [PATCH] percpu data: only iterate over possible CPUs
Date: Thu, 9 Feb 2006 01:06:55 -0800	[thread overview]
Message-ID: <20060209010655.5cdeb192.akpm@osdl.org> (raw)
In-Reply-To: <200602090335_MC3-1-B7FA-621E@compuserve.com>

Chuck Ebbert <76306.1226@compuserve.com> wrote:
>
> In-Reply-To: <20060208204502.12513ae5.akpm@osdl.org>
> 
> On Wed, 8 Feb 2006 at 20:45:02 -0800, Andrew Morton wrote:
> 
> > > Its even documented in line 332 of include/linux/cpumask.h
> > > 
> > >   *  #ifdef CONFIG_HOTPLUG_CPU
> > >   *     cpu_possible_map - all NR_CPUS bits set
> > 
> > That seems a quite bad idea.  If we know which CPUs are possible we should
> > populate cpu_possible_map correctly, whether or not CONFIG_HOTPLUG_CPU is
> > set.
> 
> I don't think that's, um, "possible."  Even if you could discover how many
> empty sockets there were in a system, someone might be able to hotplug
> a board with more of them on it.  And there's no way to tell how many CPUs
> to reserve for each socket anyway, e.g. AMD has already announced quad-core
> processors.

Well maybe.  But it's awfully presumptuous for us to say that no platform
will be capable of telling us what its maximum number of CPUs is, or even
whether certain CPUs within that range aren't possible.

<checks>

Yup, on my 2-way x86 test box, with NR_CPUS=16 we have
cpu_possible_map=0xffff.

That's just insane - the default setting for a distro kernel should be (or
will become) NR_CPUS=lots, HOTPLUG_CPU=y.  All those for_each_cpu() loops
are iterating across 16 CPUs.

aargh.

> But what really surprised me is that for_each_cpu() actually walks
> cpu_possible_map and not cpu_present_map as I had assumed.  This violates
> the Principle Of Least Surprise.  Maybe renaming for_each_cpu to
> for_each_possible_cpu might be a good idea?

That would make sense.

  parent reply	other threads:[~2006-02-09  9:08 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-09  8:32 [PATCH] percpu data: only iterate over possible CPUs Chuck Ebbert
2006-02-09  8:55 ` Paul Jackson
2006-02-09  9:06 ` Andrew Morton [this message]
2006-02-09  9:11   ` Andrew Morton
2006-02-09 10:08     ` Heiko Carstens
2006-02-09 10:13       ` Andrew Morton
2006-02-09 10:23         ` Heiko Carstens
2006-02-09 10:31           ` Andrew Morton
2006-02-09 11:47             ` Heiko Carstens
2006-02-09 12:46               ` Eric Dumazet
2006-02-09 13:12                 ` Heiko Carstens
2006-02-09 13:55                   ` Eric Dumazet
     [not found] <200602051959.k15JxoHK001630@hera.kernel.org>
2006-02-07 15:15 ` Heiko Carstens
2006-02-07 15:31   ` Jens Axboe
2006-02-07 16:25   ` Eric Dumazet
2006-02-07 16:42     ` Linus Torvalds
2006-02-07 17:34       ` Andrew Morton
2006-02-07 17:48         ` Linus Torvalds
2006-02-07 18:30           ` Dipankar Sarma
2006-02-07 18:43             ` Linus Torvalds
2006-02-07 18:53               ` Dipankar Sarma
2006-02-07 19:11                 ` Linus Torvalds
2006-02-08  4:40                   ` Heiko Carstens
2006-02-08  8:55                   ` Ivan Kokshaysky
2006-02-08 22:31 ` Rik van Riel
2006-02-09  1:20   ` Rik van Riel
2006-02-09  1:20     ` Rik van Riel
2006-02-09  3:05   ` Andrew Morton
2006-02-09  3:08     ` Andrew Morton
2006-02-09  4:36       ` Eric Dumazet
2006-02-09  4:45         ` Andrew Morton
2006-02-09  4:56           ` Paul Jackson
2006-02-09 16:08           ` Nathan Lynch
2006-02-09 16:13             ` Heiko Carstens
2006-02-09 16:38               ` Rik van Riel
2006-02-09 16:59               ` Nathan Lynch
2006-02-09 17:37               ` Andi Kleen
2006-02-10 10:05                 ` Heiko Carstens
2006-02-10 10:13                   ` Andi Kleen
2006-02-11 14:49                     ` Heiko Carstens
2006-02-11 18:04                       ` Andi Kleen
2006-02-09 17:03             ` Ashok Raj
2006-02-09 17:23               ` Nathan Lynch
2006-02-09 18:04               ` Andrew Morton
2006-02-09 18:52                 ` Ashok Raj
2006-02-09 20:37                   ` Andrew Morton
2006-02-09 21:03                     ` Ashok Raj
2006-02-10 10:02                 ` Andi Kleen
2006-02-10 10:42                   ` Andrew Morton
2006-02-10 11:09                     ` Eric Dumazet
2006-02-10 11:23                       ` Andrew Morton
2006-02-10 11:26                         ` Andrew Morton
2006-02-10 14:13                         ` Eric Dumazet
2006-02-11  0:10                           ` Nathan Lynch
2006-02-11  0:25                             ` Andrew Morton
2006-02-10 12:10                     ` Andi Kleen
2006-02-10 19:08                       ` Andrew Morton
2006-02-09  4:39   ` Eric Dumazet
2006-02-09  4:46     ` Nick Piggin

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=20060209010655.5cdeb192.akpm@osdl.org \
    --to=akpm@osdl.org \
    --cc=76306.1226@compuserve.com \
    --cc=ak@muc.de \
    --cc=dada1@cosmobay.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=pj@sgi.com \
    --cc=riel@redhat.com \
    --cc=torvalds@osdl.org \
    --cc=wli@holomorphy.com \
    /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.