From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: Re: [PATCH] Allow ACPI state change with active cpupools Date: Tue, 20 Mar 2012 14:35:47 +0100 Message-ID: <4F6887B3.1040806@ts.fujitsu.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Keir Fraser Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org 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" 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 >> >> >> 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@lists.xen.org >> http://lists.xen.org/xen-devel > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > 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@ts.fujitsu.com Domagkstr. 28 Internet: ts.fujitsu.com D-80807 Muenchen Company details: ts.fujitsu.com/imprint.html