[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LFD.2.02.1206051921320.3086@ionos>
Date: Tue, 5 Jun 2012 19:40:42 +0200 (CEST)
From: Thomas Gleixner <tglx@...utronix.de>
To: "Srivatsa S. Bhat" <srivatsa.bhat@...ux.vnet.ibm.com>
cc: Jan Beulich <JBeulich@...e.com>,
Russell King <linux@....linux.org.uk>, yong.zhang0@...il.com,
Jeremy Fitzhardinge <jeremy@...p.org>, peterz@...radead.org,
mingo@...nel.org, x86@...nel.org, akpm@...ux-foundation.org,
nikunj@...ux.vnet.ibm.com, paulmck@...ux.vnet.ibm.com,
vatsa@...ux.vnet.ibm.com,
virtualization@...ts.linux-foundation.org,
xen-devel@...ts.xensource.com,
Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>,
Ingo Molnar <mingo@...hat.com>, rusty@...tcorp.com.au,
rjw@...k.pl, linux-arch@...r.kernel.org,
linux-kernel@...r.kernel.org, Keir Fraser <keir@....org>,
"H. Peter Anvin" <hpa@...or.com>
Subject: Re: [Xen-devel] [PATCH 05/27] xen, cpu hotplug: Don't call cpu_bringup()
in xen_play_dead()
On Sat, 2 Jun 2012, Srivatsa S. Bhat wrote:
> Ok.. So, I would love to hear a confirmation about whether this patch (which
> removes cpu_bringup() in xen_play_dead()) will break things or it is good as is.
>
> If its not correct, then we can probably make __cpu_post_online() return an int,
> with the meaning:
>
> 0 => success, go ahead and call cpu_idle()
> non-zero => stop here, thanks for your services so far.. now leave the rest to me.
>
> So all other archs will return 0, Xen will return non-zero, and it will handle
> when to call cpu_idle() and when not to do so.
>
> Might sound a bit ugly, but I don't see much other option. Suggestions are
> appreciated!
Yes, it's butt ugly.
You are tripping over the main misconception of the current hotplug
code: It's asymetric.
So people added warts and workarounds like the xen one. What you are
proposing is another wart and workaround.
The real way to avoid it, is to have the symetric state machine in
place first and then convert everything to that instead of introducing
an intermediate state which resembles the existing state.
One of the main things we need to do to make it symetric is to kill
the play_dead() thing in the idle loop and make idle a function which
returns on cpu_should_die().
Give me a day or two and I get you a working version of that. (Up is
functional, just down refuses to play along)
Thanks,
tglx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists