Hi, Alex
Thank you for your elaboration.
I agree your opinion.
>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.
Exactly.
>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.
OK, I'll try it.
>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?
Hmm. Some OSes on VTI may use cpu_halt() on all vcpu.
So I add printk like "call PAL_HALT on all cpu",
and call domain_shutdown() for VTI domain.
Is this OK?
Best Regards,
Akio Takebe
>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
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|