qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] qemu: x86: report lapic version as 0x14 instead


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH] qemu: x86: report lapic version as 0x14 instead of 0x11
Date: Sun, 2 Mar 2014 16:31:12 +0200

On Sun, Mar 02, 2014 at 09:56:50AM +0100, Paolo Bonzini wrote:
> Il 02/03/2014 01:17, Gabriel L. Somlo ha scritto:
> >Although, on KVM, it's simply hardcoded to 0x14 rather than exposing to
> >the guest whatever the host CPU's apic version happens to be, or
> >trying to match it to the CPU model:
> >
> >
> >address@hidden kvm]$ grep -i version arch/x86/kvm/lapic.c
> >...
> >/* 14 is the version for Xeon and Pentium 8.4.8*/
> >#define APIC_VERSION                    (0x14UL | ((APIC_LVT_NUM - 1) << 16))
> >...
> >
> >
> >I'd honestly prefer to stick to 0x14 (because it's simple :) )
> 
> I'd also prefer that, because I like having the same for KVM and
> TCG, but I'm not sure it'd fly with others. :)
> 
> >but if you're sure that's a bad idea, how about the struct x86_def_t
> >rather than qdev ?
> >
> >So far, only OS X seems to even care at all about the version...
> 
> Andreas, Michael, what do you think?
> 
> Paolo

I note that OSX is not the only one that cares,
Linux does this:

static int modern_apic(void)
{
        /* AMD systems use old APIC versions, so check the CPU */
        if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
            boot_cpu_data.x86 >= 0xf)
                return 1;
        return lapic_get_version() >= 0x14;
}

So I think this commit should include some documentation
analysing the reasons that this is a safe change.

In any case, we really should also use old lapic version for
compat machine types.

-- 
MST



reply via email to

[Prev in Thread] Current Thread [Next in Thread]