Re: [PATCH 1/2] VMware detection support for x86 and x86-64

From: Ingo Molnar
Date: Wed Sep 17 2008 - 06:53:13 EST



* Yan Li <elliot.li.tech@xxxxxxxxx> wrote:

> On Mon, Sep 08, 2008 at 05:34:07PM -0700, H. Peter Anvin wrote:
> >> VMware may change the PCI ID at their will so I prefer checking the
> >> DMI since it's easier.
> >>
> >> So if we ditched the official method we run the risk of some false
> >> negatives. But checking the DMI manufacturer would be good enough.
> >>
> >
> > If we get false negatives that is quite frankly their problem, not ours.
> > If nothing else, we should be able to look for a host bridge with the
> > VMWare vendor ID -- that should arguably be safer than DMI.
>
> I found that in this situation we can't use PCI info. My intention to
> do this is to fix the false warning from
> arch/x86/kernel/cpu/mtrr/main.c (around L695). When booting a VMware
> guest we got:
> "WARNING: strange, CPU MTRRs all blank?"
>
> For VMware guest this warning is false, just as that for a KVM guest.
>
> This code is from mtrr_trim_uncached_memory(), and used by
> setup_arch(), which is used far before PCI is ready.
>
> Therefore I think we can only use DMI here. Any idea?

PCI quirks can be used almost arbitrarily early stage, see:
arch/x86/kernel/early-quirks.c.

Adding a VM identification callback to early-quirks.c would be fine. But
if there's a reliable and specific enough DMI string that's fine as
well. (but PCI is better, since it's a generally more stable enumeration
interface)

Ingo
--
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/