From: Rusty Russell <rusty@rustcorp.com.au>
To: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: x86@kernel.org, LKML <linux-kernel@vger.kernel.org>,
Paul McKenney <paul.mckenney@us.ibm.com>
Subject: Re: [PATCH] x86: don't ever patch back to UP if we unplug cpus.
Date: Mon, 30 Jul 2012 10:45:04 +0930 [thread overview]
Message-ID: <87d33em4mf.fsf@rustcorp.com.au> (raw)
In-Reply-To: <1343420909.3696.560.camel@sbsiddha-desk.sc.intel.com>
On Fri, 27 Jul 2012 13:28:29 -0700, Suresh Siddha <suresh.b.siddha@intel.com> wrote:
> On Fri, 2012-07-27 at 17:08 +0930, Rusty Russell wrote:
> > Paul McKenney points out:
> >
> > mean offline overhead is 6251/48=130.2 milliseconds.
> >
> > If I remove the alternatives_smp_switch() from the offline
> > path [...] the mean offline overhead is 550/42=13.1 milliseconds
> >
> > Basically, we're never going to get those 120ms back, and the code is
> > pretty messy.
>
> I am ok with this proposal. If I follow correctly, you are still
> allowing the patching to UP happen on boot if there is only one online
> cpu currently but a possiblity of multiple cpu's that can come online
> later. Perhaps make this little more explicit in the changelog.
That's right. How's this:
Subject: x86: don't ever patch back to UP if we unplug cpus.
We still patch SMP instructions to UP variants if we boot with a
single CPU, but not at any other time. In particular, not if we
unplug CPUs to return to a single cpu.
Paul McKenney points out:
mean offline overhead is 6251/48=130.2 milliseconds.
If I remove the alternatives_smp_switch() from the offline
path [...] the mean offline overhead is 550/42=13.1 milliseconds
Basically, we're never going to get those 120ms back, and the code is
pretty messy.
We get rid of:
1) The "smp-alt-once" boot option. It's actually "smp-alt-boot", the
documentation is wrong. It's now the default.
2) The skip_smp_alternatives flag used by suspend.
3) arch_disable_nonboot_cpus_begin() and arch_disable_nonboot_cpus_end()
which were only used to set this one flag.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
> Also,
>
> > + /* Patch to UP if other cpus not imminent. */
> > + if (noreplace_smp || num_present_cpus() == 1 || setup_max_cpus <= 1) {
>
> shouldn't this be
>
> if (!noreplace_smp && (num_present_cpus() == 1 || setup_max_cpus <= 1))
Yes, good point.
> also, to be consistent with other checks, may be just use
> "num_possible_cpus() == 1" check instead of "setup_max_cpus <= 1".
I think that should work. Will test variations...
Thanks,
Rusty.
next prev parent reply other threads:[~2012-07-30 1:19 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-27 7:38 [PATCH] x86: don't ever patch back to UP if we unplug cpus Rusty Russell
2012-07-27 20:28 ` Suresh Siddha
2012-07-30 1:15 ` Rusty Russell [this message]
2012-07-30 2:10 ` [PATCH v2] " Rusty Russell
2012-07-30 17:09 ` Suresh Siddha
2012-08-22 9:41 ` Ingo Molnar
2012-08-23 6:27 ` Rusty Russell
2012-07-30 2:08 ` [PATCH] " Rusty Russell
2012-08-02 8:23 ` Ingo Molnar
2012-08-06 7:59 ` [PATCH fixed for !SMP] " Rusty Russell
2012-08-22 10:20 ` [tip:x86/asm] x86/smp: Don' t " tip-bot for Rusty Russell
2012-08-23 10:53 ` tip-bot for Rusty Russell
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=87d33em4mf.fsf@rustcorp.com.au \
--to=rusty@rustcorp.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=paul.mckenney@us.ibm.com \
--cc=suresh.b.siddha@intel.com \
--cc=x86@kernel.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.