Wei, Gang
2009-Nov-24 01:33 UTC
[Xen-devel] [PATCH]xen/acpi: make poweroff really work for pv-ops dom0
xen/acpi: Make poweroff really work for pv-ops dom0 sched_op(SHUTDOWN_poweroff) hypercall will only halt all physical cpus without really poweroff the system. Use pm_power_off fn to achieve it. Signed-off-by: Wei Gang <gang.wei@intel.com> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index ecb9b0d..d9fd3f4 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c @@ -1058,6 +1058,14 @@ static void xen_machine_halt(void) xen_reboot(SHUTDOWN_poweroff); } +static void xen_machine_power_off(void) +{ + if (pm_power_off) + pm_power_off(); + else + xen_reboot(SHUTDOWN_poweroff); +} + static void xen_crash_shutdown(struct pt_regs *regs) { xen_reboot(SHUTDOWN_crash); @@ -1066,7 +1074,7 @@ static void xen_crash_shutdown(struct pt_regs *regs) static const struct machine_ops __initdata xen_machine_ops = { .restart = xen_restart, .halt = xen_machine_halt, - .power_off = xen_machine_halt, + .power_off = xen_machine_power_off, .shutdown = xen_machine_halt, .crash_shutdown = xen_crash_shutdown, .emergency_restart = xen_emergency_restart, _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jeremy Fitzhardinge
2009-Nov-24 19:32 UTC
[Xen-devel] Re: [PATCH]xen/acpi: make poweroff really work for pv-ops dom0
On 11/23/09 17:33, Wei, Gang wrote:> xen/acpi: Make poweroff really work for pv-ops dom0 > > sched_op(SHUTDOWN_poweroff) hypercall will only halt all physical cpus without > really poweroff the system. Use pm_power_off fn to achieve it. >It seems unfortunate that Xen can''t actually implement SHUTDOWN_poweroff in a manner that the name suggests ;) But it can''t because it may need to interpret _SST to do it... Thanks, J> Signed-off-by: Wei Gang <gang.wei@intel.com> > > diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c > index ecb9b0d..d9fd3f4 100644 > --- a/arch/x86/xen/enlighten.c > +++ b/arch/x86/xen/enlighten.c > @@ -1058,6 +1058,14 @@ static void xen_machine_halt(void) > xen_reboot(SHUTDOWN_poweroff); > } > > +static void xen_machine_power_off(void) > +{ > + if (pm_power_off) > + pm_power_off(); > + else > + xen_reboot(SHUTDOWN_poweroff); > +} > + > static void xen_crash_shutdown(struct pt_regs *regs) > { > xen_reboot(SHUTDOWN_crash); > @@ -1066,7 +1074,7 @@ static void xen_crash_shutdown(struct pt_regs *regs) > static const struct machine_ops __initdata xen_machine_ops = { > .restart = xen_restart, > .halt = xen_machine_halt, > - .power_off = xen_machine_halt, > + .power_off = xen_machine_power_off, > .shutdown = xen_machine_halt, > .crash_shutdown = xen_crash_shutdown, > .emergency_restart = xen_emergency_restart,_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jeremy Fitzhardinge
2009-Nov-24 23:13 UTC
[Xen-devel] Re: [PATCH]xen/acpi: make poweroff really work for pv-ops dom0
On 11/23/09 17:33, Wei, Gang wrote:> xen/acpi: Make poweroff really work for pv-ops dom0 > > sched_op(SHUTDOWN_poweroff) hypercall will only halt all physical cpus without > really poweroff the system. Use pm_power_off fn to achieve it. >BTW, there have been several reports of hangs on reboot (I see it myself on some systems). Could there be a similar problem in that area? Thanks, J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Wei, Gang
2009-Nov-25 02:38 UTC
[Xen-devel] RE: [PATCH]xen/acpi: make poweroff really work for pv-ops dom0
You are right. To make Xen poweroff really work for ACPI system, it requires dom0 to provide some assistance such as _SST invoke and so on. Jimmy Jeremy Fitzhardinge wrote:> On 11/23/09 17:33, Wei, Gang wrote: >> xen/acpi: Make poweroff really work for pv-ops dom0 >> >> sched_op(SHUTDOWN_poweroff) hypercall will only halt all physical >> cpus without really poweroff the system. Use pm_power_off fn to >> achieve it. >> > > It seems unfortunate that Xen can''t actually implement > SHUTDOWN_poweroff in a manner that the name suggests ;) But it can''t > because it may need to interpret _SST to do it... > > Thanks, > J > >> Signed-off-by: Wei Gang <gang.wei@intel.com> >> >> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c >> index ecb9b0d..d9fd3f4 100644 >> --- a/arch/x86/xen/enlighten.c >> +++ b/arch/x86/xen/enlighten.c >> @@ -1058,6 +1058,14 @@ static void xen_machine_halt(void) >> xen_reboot(SHUTDOWN_poweroff); >> } >> >> +static void xen_machine_power_off(void) >> +{ >> + if (pm_power_off) >> + pm_power_off(); >> + else >> + xen_reboot(SHUTDOWN_poweroff); >> +} >> + >> static void xen_crash_shutdown(struct pt_regs *regs) { >> xen_reboot(SHUTDOWN_crash); >> @@ -1066,7 +1074,7 @@ static void xen_crash_shutdown(struct pt_regs >> *regs) static const struct machine_ops __initdata xen_machine_ops >> { .restart = xen_restart, .halt = xen_machine_halt, >> - .power_off = xen_machine_halt, >> + .power_off = xen_machine_power_off, >> .shutdown = xen_machine_halt, >> .crash_shutdown = xen_crash_shutdown, >> .emergency_restart = xen_emergency_restart,_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Wei, Gang
2009-Nov-25 06:57 UTC
[Xen-devel] RE: [PATCH]xen/acpi: make poweroff really work for pv-ops dom0
Jeremy Fitzhardinge wrote:> On 11/23/09 17:33, Wei, Gang wrote: >> xen/acpi: Make poweroff really work for pv-ops dom0 >> >> sched_op(SHUTDOWN_poweroff) hypercall will only halt all physical >> cpus without really poweroff the system. Use pm_power_off fn to >> achieve it. >> > > BTW, there have been several reports of hangs on reboot (I see it > myself on some systems). Could there be a similar problem in that > area?Reboot is currently working well for me. Any log or description on the hangs? Jimmy _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jeremy Fitzhardinge
2009-Nov-25 19:26 UTC
[Xen-devel] Re: [PATCH]xen/acpi: make poweroff really work for pv-ops dom0
On 11/24/09 22:57, Wei, Gang wrote:> Reboot is currently working well for me. Any log or description on the hangs? >The symptom is the system just hangs at the point where it prints "rebooting...". I can drop into the Xen console and trigger a reboot, but the kernel itself seems dead. Next time I''ll get a context dump to see where the kernel is sitting. J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel