From: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
To: Venki Pallipadi <venki@google.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
Mike Travis <travis@sgi.com>,
"Paul E. McKenney" <paul.mckenney@linaro.org>,
"Rafael J. Wysocki" <rjw@sisk.pl>,
Paul Gortmaker <paul.gortmaker@windriver.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Avoid mask based num_possible_cpus and num_online_cpus
Date: Mon, 23 Jan 2012 10:52:43 +0530 [thread overview]
Message-ID: <4F1CEEA3.9050009@linux.vnet.ibm.com> (raw)
In-Reply-To: <CABeCy1aWv1DmqrkbBJ=JmAK7UkSLH+yPK-EG+58_573yG3jsHg@mail.gmail.com>
On 01/21/2012 05:25 AM, Venki Pallipadi wrote:
> On Fri, Jan 20, 2012 at 3:45 PM, KOSAKI Motohiro
> <kosaki.motohiro@gmail.com> wrote:
>>>>> +int nr_online_cpus __read_mostly;
>>>>> +EXPORT_SYMBOL(nr_online_cpus);
>>>>> +
>>>>> void set_cpu_possible(unsigned int cpu, bool possible)
>>>>> {
>>>>> if (possible)
>>>>
>>>>
>>>> Did you forget to add:
>>>>
>>>> nr_possible_cpus = cpumask_weight(cpu_possible_mask);
>>>>
>>>> inside set_cpu_possible() ?
>>>
>>> No. That was intentional as I have that coupled with nr_cpu_ids and
>>> set once after all the bits are set in setup_nr_cpu_ids() instead of
>>> doing for each bit set.
>>
>> But, Srivatsa's way seems more safer, no? Is there any advantage to make couple
>> with nr_cpu_ids?
>
> I think it is a tradeoff between safer and cleaner :). infact, that's
> how I had coded the patch first. But, then I changed it to be in sync
> with nr_cpu_ids as it seemed a bit cleaner (and also to make sure 2048
> CPU guys won't come after me for doing the mask calculation 2048 times
> during the boot).
>
I knew you were trying to optimize further when I saw your patch. That's
precisely the reason I cross-checked the code to ensure that the optimization
didn't go beyond correctness :)
And this is what I found:
start_kernel()
setup_nr_cpu_ids() // This is not the end of setting up cpu_possible_mask
rest_init()
kernel_init()
smp_prepare_cpus();
And on x86, this becomes:
native_smp_prepare_cpus();
smp_sanity_check(); // cpu_possible_mask & nr_cpu_ids can change here!
^^^^^^^^^
And there is another place where things can change:
prefill_possible_map(). But this is called in setup_arch(), which is called
before setup_nr_cpu_ids(). So we need not worry about this.
(Btw, I checked only the x86 arch. Not sure how other architectures handle
things.)
Regards,
Srivatsa S. Bhat
IBM Linux Technology Center
next prev parent reply other threads:[~2012-01-23 5:22 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-18 2:07 [PATCH] Avoid mask based num_possible_cpus and num_online_cpus Venkatesh Pallipadi
2012-01-18 5:55 ` KOSAKI Motohiro
2012-01-18 18:52 ` Venki Pallipadi
2012-01-18 19:20 ` KOSAKI Motohiro
2012-01-19 20:01 ` Venkatesh Pallipadi
2012-01-19 20:40 ` KOSAKI Motohiro
2012-01-21 1:01 ` Venki Pallipadi
2012-01-19 20:43 ` Srivatsa S. Bhat
2012-01-20 23:09 ` Venki Pallipadi
2012-01-20 23:45 ` KOSAKI Motohiro
2012-01-20 23:55 ` Venki Pallipadi
2012-01-23 5:22 ` Srivatsa S. Bhat [this message]
2012-01-23 19:28 ` Venki Pallipadi
2012-01-24 2:34 ` [PATCH] Avoid mask based num_possible_cpus and num_online_cpus -v3 Venkatesh Pallipadi
2012-01-24 19:22 ` Srivatsa S. Bhat
2012-01-24 19:30 ` KOSAKI Motohiro
2012-01-24 21:01 ` Venki Pallipadi
2012-01-24 23:25 ` [PATCH] Avoid mask based num_possible_cpus and num_online_cpus -v4 Venkatesh Pallipadi
2012-01-26 17:22 ` Srivatsa S. Bhat
2012-01-26 17:27 ` Srivatsa S. Bhat
2012-01-26 21:25 ` KOSAKI Motohiro
2012-01-26 23:22 ` Andrew Morton
2012-01-27 23:58 ` Venki Pallipadi
2012-02-01 0:17 ` [PATCH] Avoid mask based num_possible_cpus and num_online_cpus -v5 Venkatesh Pallipadi
2012-02-01 22:01 ` Andrew Morton
2012-02-02 20:03 ` Rusty Russell
2012-02-02 20:19 ` Andrew Morton
2012-02-02 21:00 ` Venki Pallipadi
2012-02-13 19:54 ` Tony Luck
2012-02-13 20:04 ` Venki Pallipadi
2012-02-13 20:25 ` Srivatsa S. Bhat
2012-02-13 20:43 ` Venki Pallipadi
2012-02-13 20:55 ` Srivatsa S. Bhat
2012-02-13 20:44 ` Srivatsa S. Bhat
2012-02-13 21:57 ` Tony Luck
2012-02-14 9:25 ` Rusty Russell
2012-02-14 21:35 ` Srivatsa S. Bhat
2012-02-14 21:47 ` Srivatsa S. Bhat
2012-02-14 23:00 ` Tony Luck
2012-02-14 23:00 ` Tony Luck
2012-02-14 22:49 ` [PATCH 0/3] Cleanup raw handling of online/possible map Venkatesh Pallipadi
2012-02-14 22:49 ` [PATCH 1/3] hexagon: Avoid raw handling of cpu_possible_map Venkatesh Pallipadi
2012-02-14 22:49 ` [PATCH 2/3] mips: Avoid raw handling of cpu_possible_map/cpu_online_map Venkatesh Pallipadi
2012-02-27 22:19 ` David Daney
2012-02-14 22:49 ` [PATCH 3/3] um: Avoid raw handling of cpu_online_map Venkatesh Pallipadi
2012-02-27 21:55 ` [PATCH] Avoid mask based num_possible_cpus and num_online_cpus -v5 David Daney
2012-02-27 22:07 ` Andrew Morton
2012-02-27 22:16 ` David Daney
2012-03-01 18:32 ` Venki Pallipadi
2012-02-28 5:01 ` Stephen Rothwell
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=4F1CEEA3.9050009@linux.vnet.ibm.com \
--to=srivatsa.bhat@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=kosaki.motohiro@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=paul.gortmaker@windriver.com \
--cc=paul.mckenney@linaro.org \
--cc=rjw@sisk.pl \
--cc=travis@sgi.com \
--cc=venki@google.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.