All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Dobson <colpatch@us.ibm.com>
To: Shaohua Li <shaohua.li@intel.com>
Cc: Ashok Raj <ashok.raj@intel.com>, ak@muc.de, akpm <akpm@osdl.org>,
	zwane <zwane@arm.linux.org.uk>,
	rusty@rustycorp.com.au, vatsa@in.ibm.com,
	lkml <linux-kernel@vger.kernel.org>,
	discuss@x86-64.org
Subject: Re: [patch 0/4] CPU Hotplug support for X86_64
Date: Wed, 25 May 2005 15:16:40 -0700	[thread overview]
Message-ID: <4294F948.20004@us.ibm.com> (raw)
In-Reply-To: <1116927099.3827.2.camel@linux-hp.sh.intel.com>

Shaohua Li wrote:
> On Tue, 2005-05-24 at 01:11 -0700, Ashok Raj wrote:
> 
>>TBD: 
>>
>>1. Track down CONFIG_SCHED_SMT Oops with both cpu up/down.
>>2. Test on real NUMA hw. 
>>
> 
> With below patch, cpu hotplug works with SCHED_SMT enabled in my test.
> set_cpu_sibling_map is invoked before cpu is set to online.
> 
> Thanks,
> Shaohua

I'm not sure, but you probably want "for_each_cpu(i)" instead of "for (i =
0; i < NR_CPUS; i++)" below.

It should be rare that you really want to explicitly itterate over
[0..NR_CPUS] cpus.  for_each_cpu() will itterate over all "possible" cpus,
which may well be [0..NR_CPUS], but it at least is cleaner and more
readable.  If your arch actually sets up cpu_possible_map correctly, then
it will likely be quite a bit faster and more efficient to use for_each_cpu().

Again, I haven't looked at the surrounding code, but it's very likely that
for_each_cpu() will do what you want.

-Matt


> --- a/arch/x86_64/kernel/smpboot.c.orig	2005-05-24 16:47:57.000000000 +0800
> +++ b/arch/x86_64/kernel/smpboot.c	2005-05-24 16:48:31.000000000 +0800
> @@ -443,7 +443,7 @@ set_cpu_sibling_map(int cpu)
>  	int i;
>  
>  	if (smp_num_siblings > 1) {
> -		for_each_online_cpu(i) {
> +		for (i = 0; i < NR_CPUS; i++) {
>  			if (cpu_core_id[cpu] == cpu_core_id[i]) {
>  				cpu_set(i, cpu_sibling_map[cpu]);
>  				cpu_set(cpu, cpu_sibling_map[i]);
> @@ -454,7 +454,7 @@ set_cpu_sibling_map(int cpu)
>  	}
>  
>  	if (current_cpu_data.x86_num_cores > 1) {
> -		for_each_online_cpu(i) {
> +		for (i = 0; i < NR_CPUS; i++) {
>  			if (phys_proc_id[cpu] == phys_proc_id[i]) {
>  				cpu_set(i, cpu_core_map[cpu]);
>  				cpu_set(cpu, cpu_core_map[i]);

  reply	other threads:[~2005-05-25 22:17 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-24  8:11 [patch 0/4] CPU Hotplug support for X86_64 Ashok Raj
2005-05-24  8:11 ` [patch 1/4] " Ashok Raj
2005-05-24 12:15   ` Andi Kleen
2005-05-24 15:51     ` Ashok Raj
2005-05-24 18:18       ` Andi Kleen
2005-05-24  8:11 ` [patch 2/4] " Ashok Raj
2005-05-24 12:24   ` Andi Kleen
2005-05-24  8:11 ` [patch 3/4] " Ashok Raj
2005-05-24 12:27   ` Andi Kleen
2005-05-24  8:11 ` [patch 4/4] " Ashok Raj
2005-05-24 12:28   ` Andi Kleen
2005-05-24  9:31 ` [patch 0/4] " Shaohua Li
2005-05-25 22:16   ` Matthew Dobson [this message]
2005-05-26  0:11     ` Ashok Raj
  -- strict thread matches above, loose matches on Subject: below --
2005-05-24  7:27 Ashok Raj

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=4294F948.20004@us.ibm.com \
    --to=colpatch@us.ibm.com \
    --cc=ak@muc.de \
    --cc=akpm@osdl.org \
    --cc=ashok.raj@intel.com \
    --cc=discuss@x86-64.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rusty@rustycorp.com.au \
    --cc=shaohua.li@intel.com \
    --cc=vatsa@in.ibm.com \
    --cc=zwane@arm.linux.org.uk \
    /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.