Re: [PATCH] KVM: Documentation: document MCE ioctls

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

 



On 17/02/2017 23:08, Luiz Capitulino wrote:
> 
> Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx>
> ---
>  Documentation/virtual/kvm/api.txt | 60 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 60 insertions(+)

Thanks Luiz---just a couple nits.

> diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt
> index 03145b7..1620a2d 100644
> --- a/Documentation/virtual/kvm/api.txt
> +++ b/Documentation/virtual/kvm/api.txt
> @@ -3201,6 +3201,66 @@ struct kvm_reinject_control {
>  pit_reinject = 0 (!reinject mode) is recommended, unless running an old
>  operating system that uses the PIT for timing (e.g. Linux 2.4.x).
>  
> +4.99 KVM_X86_GET_MCE_CAP_SUPPORTED
> +
> +Capability: KVM_CAP_MCE
> +Architectures: x86
> +Type: system ioctl
> +Parameters: u64 mce_cap (in/out)
> +Returns: 0 on success, -1 on error
> +
> +Returns supported MCE capabilities. The u64 mce_cap parameter
> +has the same format as the MSR_IA32_MCG_CAP register. Supported
> +capabilities will have the corresponding bits set.
> +
> +4.100 KVM_X86_SETUP_MCE
> +
> +Capability: KVM_CAP_MCE
> +Architectures: x86
> +Type: vcpu ioctl
> +Parameters: u64 mcg_cap (in)
> +Returns: 0 on success,
> +         -EFAULT if u64 mcg_cap cannot be read,
> +         -EINVAL if the requested number of banks is invalid,
> +         -EINVAL if requested MCE capability is not supported.
> +
> +Initializes MCE support for use. The u64 mcg_cap parameter
> +has the same format as the MSR_IA32_MCG_CAP register and
> +specifies which capabilities should be enabled. The maximum
> +supported number of error-reporting banks can be retreive when

retrieved

> +checking for KVM_CAP_MCE. The supported capabilities can be
> +retrieved with KVM_X86_GET_MCE_CAP_SUPPORTED.
> +
> +4.101 KVM_X86_SET_MCE
> +
> +Capability: KVM_CAP_MCE
> +Architectures: x86
> +Type: vcpu ioctl
> +Parameters: struct kvm_x86_mce (in)
> +Returns: 0 on success,
> +         -EFAULT if struct kvm_x86_mce cannot be read,
> +         -EINVAL if the bank number is invalid,
> +         -EINVAL if VAL bit is not set in status field.
> +
> +Inject an MCE into the guest. The input parameter is:

Inject a machine check error (MCE) into the guest.  The input parameter is:

> +struct kvm_x86_mce {
> +	__u64 status;
> +	__u64 addr;
> +	__u64 misc;
> +	__u64 mcg_status;
> +	__u8 bank;
> +	__u8 pad1[7];
> +	__u64 pad2[3];
> +};
> +
> +If the MCE being reported is an uncorrected error, KVM will
> +inject it as a MCE exception into the guest (if an MCE
> +is still in progress, a triple fault is be injected).

If the guest MCG_STATUS register reports that an MCE is in progress, KVM
causes an KVM_EXIT_SHUTDOWN vmexit.

If the MCE being reported is an uncorrected error, KVM will
inject it as a MCE exception into the guest.

That's it,

Paolo

> +Otherwise, if the MCE is a corrected error, KVM will just
> +store it in the corresponding bank (provided this bank is
> +not holding a previously reported uncorrected error).
> +
>  5. The kvm_run structure
>  ------------------------
>  
> 



[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