On 07/02/2013 05:07 PM, Yoder Stuart-B08248 wrote:
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
It can also be used on book3s systems. We use the same logic for -M g3beige and -M mac99. We even use it for -M mpc8544ds.
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[].
Please specify which registers ret and args will end up in.
------------------------------------------------------------------------ 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
I don't remember how ePAPR specifies this. Aren't keys in /hypervisor supposed to be common throughout hypervisors? So if Windriver wants to add a reset hypercall, they'd also add "has-reset"? How does the guest know which hcall number to issue?
Thanks a lot for writing all of this down :) Alex
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