RFC: proposal for VM reset & shutdown hcall (v2)

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

 



Version 2 changes
   -remove advertising via KVM_HC_FEATURES
   -define a new exit type (KVM_EXIT_EPAPR_HCALL) for user space
    handled hcalls
   -advertise KVM_EXIT_EPAPR_HCALL to user space via new capability
    flag
   -defined device tree properties to advertise the existence
    of reset and shutdown hcalls to a guest

------------------------------------------------------------------------
KVM_CAP_EXIT_EPAPR_HCALL  Capability

A new capability KVM_CAP_EXIT_EPAPR_HCALL is defined to advertise
the new KVM_EXIT_EPAPR_HCALL exit .

------------------------------------------------------------------------
KVM_EXIT_EPAPR_HCALL exit definition

                /* KVM_EXIT_EPAPR_HCALL */
                struct {
                        __u64 nr;
                        __u64 ret;
                        __u64 args[8];
                } epapr_hcall;

This is used on e500 Power Architecture for the paravirt e500
platform.  It occurs when a guest does a hypercall (as defined
in the ePAPR 1.1) and the hcall is not handled by the kernel.

The 'nr' field contains the hypercall number (from the guest R11),
and 'args' contains the arguments (from the guest R3 - R10).
Userspace should put the return code in 'ret' and any extra returned
values in args[].

------------------------------------------------------------------------
Advertising reset and shutdown in device tree.

A virtual machine can detect the availability of the reset 
and shutdown hcalls by looking at properties on the /hypervisor
node.

    Property name: has-reset
    Value type: <none>
    Definition:  If the property is present the hypervisor supports
                 the KVM_HC_VM_RESET hcall.

    Property name: has-shutdown
    Value type: <none>
    Definition:  If the property is present the hypervisor supports
                 the KVM_HC_VM_SHUTDOWN hcall.

------------------------------------------------------------------------
Hypercall: KVM_HC_VM_RESET
Description:  Requests that the virtual machine be reset.  The
              hcall takes no arguments. If successful the hcall does not
              return.

Arguments:
     r11    hcall-token   KVM_HC_VM_RESET

Return values
     r3     status        Status of the hcall.  If the hcall succeeds
                          it does not return.  If an error occurs
                          EV_INTERNAL is returned.

------------------------------------------------------------------------
Hypercall: KVM_HC_VM_SHUTDOWN
Description:  Requests that the virtual machine be powered-off/halted.
              The hcall takes no arguments. If successful the hcall does not
              return.

Arguments:
     r11    hcall-token   KVM_HC_VM_SHUTDOWN

Return values
     r3     status        Status of the hcall.  If the hcall succeeds
                          it does not return.  If an error occurs
                          EV_INTERNAL is returned.



Regards,
Stuart


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux