[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] Allow ACPI state change with active cpupools
On 03/20/2012 01:52 PM, Keir Fraser wrote: That's quite a lot of bother. Firstly, this could probably be supported by a global system_state type of variable indicating whether we are booting, suspending, normal. Etc. Secondly I wonder whether you really need to care about this detail from within the cpupool code? When you offline a CPU in cpupool!=0, remember it. Put it back in the pool when it onlines, if the pool still exists. Don't prevent a pool from being destroyed just because it has offline cpus as members. Something like that? Or even always have the cpupool code put onlined cpus in pool 0, and have the acpi suspend code remember and restore pool memberships. Hmm. Using a global variable seems to be hacky. I tried to find a clean solution for the problem. If the changes are too big in your opinion, I'll try to handle cpu offlining local to cpupools. Thanks for your opinion, Juergen -- Keir On 20/03/2012 12:15, "Juergen Gross"<juergen.gross@xxxxxxxxxxxxxx> wrote:Changing the ACPI state (e.g. power off) while not all cpus are in cpupool 0 will currently crash the hypervisor during disabling the other cpus. This patch avoids the crash by adding the reason for disabling a cpu (either permanent e.g. in case of cpu hotplug or temporary in case of ACPI state change). This requires an additional parameter for cpu callbacks. All callbacks are changed to take a structure as parameter instead of only the cpu number. Signed-off-by: Juergen Gross<juergen.gross@xxxxxxxxxxxxxx> 25 files changed, 185 insertions(+), 139 deletions(-) xen/arch/x86/acpi/cpu_idle.c | 13 ++++--- xen/arch/x86/cpu/mcheck/mce.c | 8 ++-- xen/arch/x86/cpu/mcheck/mce_intel.c | 8 ++-- xen/arch/x86/hvm/hvm.c | 10 ++--- xen/arch/x86/microcode.c | 6 +-- xen/arch/x86/nmi.c | 17 +++++---- xen/arch/x86/percpu.c | 8 ++-- xen/arch/x86/setup.c | 2 - xen/arch/x86/smpboot.c | 8 ++-- xen/arch/x86/sysctl.c | 8 ++-- xen/arch/x86/x86_32/traps.c | 8 ++-- xen/common/cpu.c | 46 ++++++++++++++++---------- xen/common/cpupool.c | 17 ++++++--- xen/common/kexec.c | 13 ++++--- xen/common/rcupdate.c | 15 +++++--- xen/common/sched_credit2.c | 6 +-- xen/common/schedule.c | 8 ++-- xen/common/stop_machine.c | 17 +++++---- xen/common/tasklet.c | 19 ++++++---- xen/common/timer.c | 15 +++++--- xen/common/tmem_xen.c | 32 +++++++++--------- xen/common/trace.c | 6 +-- xen/drivers/cpufreq/cpufreq.c | 15 +++++--- xen/drivers/cpufreq/cpufreq_misc_governors.c | 6 +-- xen/include/xen/cpu.h | 13 ++++++- _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel -- Juergen Gross Principal Developer Operating Systems PDG ES&S SWE OS6 Telephone: +49 (0) 89 3222 2967 Fujitsu Technology Solutions e-mail: juergen.gross@xxxxxxxxxxxxxx Domagkstr. 28 Internet: ts.fujitsu.com D-80807 Muenchen Company details: ts.fujitsu.com/imprint.html _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |