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

Re: [Xen-devel] SHUTDOWN_suspend



On 17/1/08 17:04, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote:

> Could someone explain to me the mechanisms by which the
> SHUTDOWN_suspend sub-command of SCHEDOP_shutdown is handled?
> I am namely having a hard time finding where the non-zero return code
> unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c:bp_suspend()
> checks for gets injected.

The non-zero return code is injected by the tools: see
tools/libxc/xc_resume.c:modify_returncode().

> Besides that it puzzles me that this is being used differently by the
> pv-on-hvm drivers and the ones on a pv kernel: the latter pass an extra
> argument, the consumer of which I again cannot seem to be able to find.
> I'm specifically interested if it is valid to replace the pv drivers' use
> (through HYPERVISOR_shutdown()) with a call to HYPERVISOR_suspend(),
> and whether in that case passing just any value for the 'srec' parameter
> is possible.

The extra argument is not really consumed by the suspend hypercall. It ends
up in %esi when the hypercall occurs and can then be pulled out of the
vcpu's register context by the toolstack. This is simply a convention
between tools and guest -- Xen itself is not really involved.

HVM guests do not pass this extra parameter to the tools, because it is not
required.

 -- Keir



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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