Messages in this thread | | | Date | Wed, 17 Sep 2008 12:52:38 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH 1/2] VMware detection support for x86 and x86-64 |
| |
* Yan Li <elliot.li.tech@gmail.com> 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
| |