From: Thomas Gleixner <tglx@linutronix.de>
To: Peter Zijlstra <peterz@infradead.org>
Cc: "Luck, Tony" <tony.luck@intel.com>,
"Yu, Fenghua" <fenghua.yu@intel.com>,
Rusty Russell <rusty@rustcorp.com.au>,
Ingo Molnar <mingo@elte.hu>, H Peter Anvin <hpa@zytor.com>,
"Siddha, Suresh B" <suresh.b.siddha@intel.com>,
"Mallick, Asit K" <asit.k.mallick@intel.com>,
Arjan Dan De Ven <arjan@linux.intel.com>,
linux-kernel <linux-kernel@vger.kernel.org>, x86 <x86@kernel.org>,
linux-pm <linux-pm@vger.kernel.org>,
"Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
Subject: RE: [PATCH 0/6] x86/cpu hotplug: Wake up offline CPU via mwait or nmi
Date: Tue, 5 Jun 2012 22:47:47 +0200 (CEST) [thread overview]
Message-ID: <alpine.LFD.2.02.1206052153200.3086@ionos> (raw)
In-Reply-To: <1338925756.2749.36.camel@twins>
On Tue, 5 Jun 2012, Peter Zijlstra wrote:
> On Tue, 2012-06-05 at 21:43 +0200, Thomas Gleixner wrote:
> > Vs. the interrupt/timer/other crap madness:
> >
> > - We really don't want to have an interrupt balancer in the kernel
> > again, but we need a mechanism to prevent the user space balancer
> > trainwreck from ruining the power saving party.
>
> What's wrong with having an interrupt balancer tied to the scheduler
> which optimistically tries to avoid interrupting nohz/isolated/idle
> cpus?
You want to run through a boatload of interrupts and change their
affinity from the load balancer or something related? Not really.
> > - The timer issue is mostly solved by the existing nohz stuff
> > (plus/minus the few bugs in there).
>
> Its not.. if you create an isolated domain there's no way to expel
> existing timers from there.
Yep, that's one of the problems which need to be fixed independent of
the solution we come up with.
> > - The other details (silly IPIs) and cross CPU timer arming) are way
> > easier to solve by a proper prohibitive state than by chasing that
> > nonsense all over the tree forever.
>
> But we need to solve all that without a prohibitibe state anyway for the
> isolation stuff to be useful.
And what is preventing us to use a prohibitive state for that purpose?
The isolation stuff Frederic is working on is nothing else than
dynamically switching in and out of a prohibitive state.
So do we really need to make the world and some more aware of those
states, instead of having a facility which lets us control what's
allowed/applicable in a given situation? Whether that's controlled by
the load-balancer or by user space or partially by both or something
else is a totally different issue.
I completely understand your reasoning, but I seriously doubt that we
can educate the whole crowd to understand the problems at hand. My
experience in the last 10+ years tells me that if you do not restrict
stuff you enter a never ending "chase the human stupidity^Wcreativity"
game. Even if you restrict it massively you end up observing a patch
which does:
+ d->core_internal_state__do_not_mess_with_it |= SOME_CONSTANT;
So do you really want to promote a solution which requires brain
sanity of all involved parties?
What's wrong with making a 'hotplug' model which provides the
following states:
Fully functional
Isolated functional
Isolated idle
<the physical hotplug mess>
where you have the ability to control the transitions of the upper 3
(or maybe more) states from the load balancer and/or user space or
whatever instance we come up with?
That puts the burden on the core facility design, but it removes the
maintainence burden to chase a gazillion of instances doing IPIs,
cross cpu function calls, add_timer_on, add_work_on and whatever
nonsense.
Note, that these upper states are not 'hotplug' by definition, but
they have to be traversed by hot(un)plug as well. So why not making
them explicit states which we can exploit for the other problems we
want to solve?
Your idea of tying everything to the scheduler and the load balancer
is just introducing the exacly same states again, just in a different
context.
Thanks,
tglx
next prev parent reply other threads:[~2012-06-05 20:48 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-04 18:17 Fenghua Yu
2012-06-04 18:17 ` [PATCH 1/6] x86/Documentation/kernel-parameters.txt: Add wakeup_cpu_via_init kernel parameter help Fenghua Yu
2012-06-04 18:17 ` [PATCH 2/6] x86/head_32.S/head_64.S: Kernel entry code after waking up offline CPU via mwait or nmi Fenghua Yu
2012-06-04 18:17 ` [PATCH 3/6] x86/smpboot.c: Wake " Fenghua Yu
2012-06-04 18:58 ` Suresh Siddha
2012-06-04 19:35 ` Yu, Fenghua
2012-06-04 18:17 ` [PATCH 4/6] x86/apic_flat_64.c: Wakeup function in apic calls mwait or nmi method Fenghua Yu
2012-06-04 18:17 ` [PATCH 5/6] x86/x2apic_cluster.c: Wakeup function in x2apic_cluster " Fenghua Yu
2012-06-04 18:17 ` [PATCH 6/6] x86/x2apic_phys.c: Wakeup function in x2apic_phys " Fenghua Yu
2012-06-04 18:17 ` Fenghua Yu
2012-06-04 20:11 ` [PATCH 0/6] x86/cpu hotplug: Wake up offline CPU via mwait or nmi Thomas Gleixner
2012-06-04 20:18 ` Luck, Tony
2012-06-04 22:52 ` Thomas Gleixner
2012-06-04 20:33 ` Peter Zijlstra
2012-06-05 0:40 ` Rusty Russell
2012-06-05 1:23 ` Arjan van de Ven
2012-06-05 7:38 ` Peter Zijlstra
2012-06-05 14:17 ` Alan Stern
2012-06-05 15:27 ` Arjan van de Ven
2012-06-05 7:39 ` Peter Zijlstra
2012-06-05 16:02 ` Yu, Fenghua
2012-06-05 16:09 ` Peter Zijlstra
2012-06-05 16:18 ` Yu, Fenghua
2012-06-05 16:19 ` Peter Zijlstra
2012-06-05 17:44 ` Luck, Tony
2012-06-05 17:50 ` Peter Zijlstra
2012-06-05 19:43 ` Thomas Gleixner
2012-06-05 19:45 ` Peter Zijlstra
2012-06-05 19:49 ` Peter Zijlstra
2012-06-05 19:51 ` Arjan van de Ven
2012-06-05 19:52 ` Peter Zijlstra
2012-06-05 20:47 ` Thomas Gleixner [this message]
2012-06-05 21:30 ` Peter Zijlstra
2012-06-05 22:09 ` Thomas Gleixner
2012-06-06 8:23 ` Peter Zijlstra
2012-06-06 8:30 ` Peter Zijlstra
2012-06-06 8:40 ` Peter Zijlstra
2012-06-05 22:12 ` Paul E. McKenney
2012-06-06 8:40 ` Peter Zijlstra
2012-06-06 8:42 ` Peter Zijlstra
2012-06-06 14:44 ` Paul E. McKenney
2012-06-06 15:46 ` Peter Zijlstra
2012-06-06 23:20 ` Paul E. McKenney
2012-06-08 9:20 ` Peter Zijlstra
2012-06-06 8:43 ` Peter Zijlstra
2012-06-06 14:41 ` Paul E. McKenney
2012-06-06 15:23 ` Arjan van de Ven
2012-06-06 15:48 ` Peter Zijlstra
2012-06-06 15:49 ` Paul E. McKenney
2012-06-06 16:59 ` Arjan van de Ven
2012-06-05 21:29 ` Paul E. McKenney
2012-06-05 21:37 ` Peter Zijlstra
2012-06-05 22:00 ` Paul E. McKenney
2012-06-06 12:17 ` Peter Zijlstra
2012-06-06 14:43 ` Paul E. McKenney
2012-06-05 19:51 ` Peter Zijlstra
2012-06-05 20:58 ` Andi Kleen
2012-06-05 21:15 ` Thomas Gleixner
2012-06-05 21:33 ` Thomas Gleixner
2012-06-05 23:13 ` Andi Kleen
2012-06-06 1:52 ` Arjan van de Ven
2012-06-05 18:07 ` Peter Zijlstra
2012-06-05 19:54 ` Luck, Tony
2012-06-05 19:56 ` Peter Zijlstra
2012-06-05 9:36 ` Thomas Gleixner
2012-06-05 13:41 ` [PATCH] kthread: Implement park/unpark facility Thomas Gleixner
2012-06-05 14:01 ` Peter Zijlstra
2012-06-05 14:05 ` Peter Zijlstra
2012-06-07 0:04 ` H. Peter Anvin
2012-06-10 5:40 ` Rusty Russell
2012-06-11 9:26 ` Thomas Gleixner
2012-06-12 0:23 ` Rusty Russell
2012-06-05 15:35 ` [PATCH 0/6] x86/cpu hotplug: Wake up offline CPU via mwait or nmi Jiang Liu
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=alpine.LFD.2.02.1206052153200.3086@ionos \
--to=tglx@linutronix.de \
--cc=arjan@linux.intel.com \
--cc=asit.k.mallick@intel.com \
--cc=fenghua.yu@intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=rusty@rustcorp.com.au \
--cc=srivatsa.bhat@linux.vnet.ibm.com \
--cc=suresh.b.siddha@intel.com \
--cc=tony.luck@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome