On Wed, 2007-01-24 at 11:14 +0100, tgingold@xxxxxxx wrote:
> Selon Isaku Yamahata <yamahata@xxxxxxxxxxxxx>:
>
> > On Wed, Jan 24, 2007 at 11:43:37AM +0900, Akio Takebe wrote:
> [...]
> > According to SDM vol2 11.9, PAL_HALT places cpu in low power state.
> Correct.
>
> > So the current behaviour that xen/ia64 shutdown unconditionally is
> > wrong.
> Yes, but that's the code in linux/ia64.
> Why linux/ia64 doesn't call the shutdown EFI runtime service ? I don't know.
> Maybe Alex knows the answer.
I think we need to be sure we're getting the correct expected user
behavior for domains. A user expects the following on real hardware:
* halt: Machine is stopped, not shutdown, not rebooted.
Linux/ia64 uses PAL_HALT for this.
* restart/reboot: Machine is reset. Linux/ia64 uses
efi.reset_system for this.
* poweroff: Machine is turned off. Linux/ia64 uses ACPI S5 power
state if pm_power_off is set, otherwise behaves as if halted.
So, for PV domains, cpu_halt() should just take the vcpu offline. I
don't think there's any reason to special case the last vcpu going
offline and shutdown the domain. That's not what real hardware does.
Machine restart/reboot should (and does) happen transparently when Xen
catches the EFI call. To support poweroff, I think we should set
pm_power_off to a Xen specific hypervisor shutdown routine. The
abstraction is already in place to do this.
Do VTI domains implement enough ACPI to provide the OS a fake S5 power
state? If not, a PV-on-HVM driver could set pm_power_off and use a
hypercall, but that means HVM domains would need a Xen driver for some
pretty basic functionality. Maybe all vcpus in cpu_halt() should only
be cause for a domain shutdown for VTI domains?
> > CPU hot-unplug routine also calls cpu_halt(). In that case,
> > only the targeted cpu should be halted. We don't want domain shutdown.
> If the last vcpu calls PAL_HALT, the domain can be safely shut down.
It's safe, but I don't agree that it should. Thanks,
Alex
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|