Re: [PATCH -v3] KVM: MCE: Add MCE support to KVM

From: Jan Kiszka
Date: Mon May 25 2009 - 14:21:58 EST


Jan Kiszka wrote:
> Avi Kivity wrote:
>> Jan Kiszka wrote:
>>> Avi Kivity wrote:
>>>
>>>> Huang Ying wrote:
>>>>
>>>>> The related MSRs are emulated. MCE capability is exported via
>>>>> extension KVM_CAP_MCE and ioctl KVM_X86_GET_MCE_CAP_SUPPORTED. A new
>>>>> vcpu ioctl command KVM_X86_SETUP_MCE is used to setup MCE emulation
>>>>> such as the mcg_cap. MCE is injected via vcpu ioctl command
>>>>> KVM_X86_SET_MCE. Extended machine-check state (MCG_EXT_P) and CMCI are
>>>>> not implemented.
>>>>>
>>>>>
>>>> Applied, thanks.
>>>>
>>>>
>>> This patch breaks kvm build for 32-bit hosts.
>>>
>> Strange, I build-test on i386. What's your failure?
>
> This is against some 2.6.28 kernel:
>
> CC [M] /data/kvm-kmod/x86/x86.o
> /data/kvm-kmod/x86/x86.c: In function âset_msr_mceâ:
> /data/kvm-kmod/x86/x86.c:794: error: âMCG_CTL_Pâ undeclared (first use in this function)
> /data/kvm-kmod/x86/x86.c:794: error: (Each undeclared identifier is reported only once
> /data/kvm-kmod/x86/x86.c:794: error: for each function it appears in.)
> /data/kvm-kmod/x86/x86.c: In function âget_msr_mceâ:
> /data/kvm-kmod/x86/x86.c:950: error: âMCG_CTL_Pâ undeclared (first use in this function)
> /data/kvm-kmod/x86/x86.c: In function âkvm_arch_dev_ioctlâ:
> /data/kvm-kmod/x86/x86.c:1216: error: âMCG_CTL_Pâ undeclared (first use in this function)
> /data/kvm-kmod/x86/x86.c: In function âkvm_vcpu_ioctl_x86_setup_mceâ:
> /data/kvm-kmod/x86/x86.c:1592: error: âMCG_CTL_Pâ undeclared (first use in this function)
> /data/kvm-kmod/x86/x86.c: In function âkvm_vcpu_ioctl_x86_set_mceâ:
> /data/kvm-kmod/x86/x86.c:1613: error: âMCI_STATUS_VALâ undeclared (first use in this function)
> /data/kvm-kmod/x86/x86.c:1619: error: âMCI_STATUS_UCâ undeclared (first use in this function)
> /data/kvm-kmod/x86/x86.c:1619: error: âMCG_CTL_Pâ undeclared (first use in this function)
> /data/kvm-kmod/x86/x86.c:1630: error: âMCG_STATUS_MCIPâ undeclared (first use in this function)
> /data/kvm-kmod/x86/x86.c:1639: error: âMCI_STATUS_OVERâ undeclared (first use in this function)
>
>>> Is the KVM MCE interface completely or only partially limited to x86-64,
>>> ie. can I completely #ifdef it away on 32-bit hosts (including
>>> KVM_CAP_MCE) or is this more complicated?
>>>
>> I don't see any reason to limit it to x86_64?
>>
>
> Well, if I look at the definition of MCI_STATUS_VAL as (1UL<<63),
> something tells me: "Hey, only use me on 64-bit hosts!" But I have no
> clue about details of this stuff, and from a second glance at it is
> seems to include at least some parts that are valid on 32-bit as well.

Ah, interesting: /someone/ removed the #ifdef __x86_64__ from
arch/x86/include/asm/mce.h, but that's not mainline yet...

Jan

--
Siemens AG, Corporate Technology, CT SE 2
Corporate Competence Center Embedded Linux
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/