[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] Allow ACPI state change with active cpupools


  • To: Juergen Gross <juergen.gross@xxxxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: Keir Fraser <keir@xxxxxxx>
  • Date: Tue, 20 Mar 2012 12:52:07 +0000
  • Delivery-date: Tue, 20 Mar 2012 12:52:28 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>
  • Thread-index: Ac0GmEGojcp/s5kNOEekCm2Y+obwKg==
  • Thread-topic: [Xen-devel] [PATCH] Allow ACPI state change with active cpupools

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.

 -- 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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.