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

Re: [openxt-dev] Re: Follow up on libxl-fix-reboot.patch



On 16/12/2020 14:14, Jason Andryuk wrote:
> On Tue, Dec 15, 2020 at 5:22 PM Chris Rogers <crogers122@xxxxxxxxx> wrote:
>> Hopefully I can provide a little more context.  Here is a link to the patch:
>>
>> https://github.com/OpenXT/xenclient-oe/blob/master/recipes-extended/xen/files/libxl-fix-reboot.patch
>>
>> The patch is a bit mis-named.  It does not implement 
>> XEN_DOMCTL_SENDTRIGGER_RESET.  It's just a workaround to handle the missing 
>> RESET implementation.
>>
>> Its purpose is to make an HVM guest "reboot" regardless of whether PV tools 
>> have been installed and the xenstore interface is listening or not.  From 
>> the client perspective that OpenXT is concerned with, this is for 
>> ease-of-use for working with HVM guests before PV tools are installed.  To 
>> summarize the flow of the patch:
>>
>> - User input causes high level toolstack, xenmgr, to do xl reboot <domid>
>> - libxl hits "PV interface not available", so it tries the fallback ACPI 
>> reset trigger (but that's not implemented in domctl)
>> - therefore, the patch changes the RESET trigger to POWER trigger, and sets 
>> a 'reboot' flag
>> - when the xl create process handles the domain_death event for 
>> LIBXL_SHUTDOWN_REASON_POWEROFF, we check for our 'reboot' flag.
>> - It's set, so we set "action" as if we came from a real restart, which 
>> makes the xl create process take the 'goto start' codepath to rebuild the 
>> domain.
>>
>> I think we'd like to get rid of this patch, but at the moment I don't have 
>> any code or a design to propose that would implement the 
>> XEN_DOMCTL_SENDTRIGGER_RESET.
> I'm not sure it's possible to implement one.  Does an ACPI
> reset/reboot button exist?  And then you'd have the problem that the
> guest needs to be configured to react to the button.

The ACPI spec has two signals as far as this goes. "the user pressed the
power button" and "the user {pressed the suspend button, closed the
laptop lid}".  Neither are useful for VMs typically, because default OS
settings do the wrong thing.

The mystery to unravel here is why xl is issuing an erroneous hypercall.

It is very unlikely that we will have dropped
XEN_DOMCTL_SENDTRIGGER_RESET from Xen, but I suppose its possible.  It's
definitely weird that we have it in the interface and unimplemented.

It's also possible it was a copy&paste mistake when trying to implement
an interface consistent with `xm trigger`.

It is definitely concerning that we've got a piece of functionality like
this which clearly hasn't seen any testing upstream.

~Andrew



 


Rackspace

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