Re: [RFC][PATCH][EXPERIMENTAL] CPU hotplug with frozen tasks

From: Gautham Shenoy
Date: Mon Apr 16 2007 - 05:50:52 EST


Hi Rafael,

On 4/15/07, Rafael J. Wysocki <rjw@xxxxxxx> wrote:
Hi,

As I said before, we have a problem with using the CPU hotplug for suspending
because of the notifiers that are called from within cpu_up()/cpu_down() and
(sometimes) assume that the system is fully functional.


Right. In order to use freezer for CPU hotplug, we need to perform
that audit anyway.

One obvious solution of this problem would be to make the notifiers behave
differently if tasks are frozen, but for this purpose we'd need to tell them
that this is the case. In principle, we could do it in many different ways
(eg. by using a global variable, with the help of suspend notifiers etc.), but
IMO one of the cleanest methods woud be to use some special values for the
notifications occuring while tasks are frozen (eg. CPU_DEAD_FROZEN instead of
CPU_DEAD etc.). In that case the notifiers could react in some special ways
to the "FROZEN" notfifications and that would allow us to simplify some code
paths (eg. in the microcode driver).


Agreed.

The appended patch introduces such "FROZEN" notfifications, modifies the CPU
hotplug core to use them and updates all of the users of CPU hotplug notifiers
to recognize them. For now, they are treated in the same way as the
corresponding "normal" notifications, but I'm going to modify the microcode
driver to really use them and I believe that some other subsystems can benefit
from using them as well.


Ok. A minor doubt.

When you say FROZEN, do you mean frozen due to suspend ? If yes, then
it makes sense. Otherwise once cpu-hotplug starts using the freezer
(hopefully it will someday soon
:-)) won't this patch become redundant ? [Except of course fixing a few glitches
due to the assumption that the system is fully functional, when it's
actually frozen.]

I am of the opinion that we should have notifications which help the
cpu-hotplug aware
subsystems differentiate between a normal cpu-hotplug and a
cpu-hotplug initiated by
suspend. Thereby they can handle it accordingly and not destroy any
percpu resources
and reuse them instead during resume.

Am I missing something?

The patch is totally experimental and untested, although it's been successfully
compiled on x86_64 and it's main purpose is to show what exactly I mean. :-)

Comments welcome.


Other than that, I am ok with the patch.

Greetings,
Rafael


Thanks and Regards
gautham.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/