[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <48CFF4EB.1050401@zytor.com>
Date: Tue, 16 Sep 2008 11:03:23 -0700
From: "H. Peter Anvin" <hpa@...or.com>
To: linux@...dersweb.net
CC: linux-kernel@...r.kernel.org,
the arch/x86 maintainers <x86@...nel.org>,
Ingo Molnar <mingo@...e.hu>
Subject: Re: [PATCH] x86: Don't use NOPL on 32-bit cpu's because not all systems
support it.
>
> I think you still want the nopl enabled for 64-bits.
>
Yes. Accordingly, I didn't change 64 bits.
> int main()
> {
> signal(SIGILL, except);
> asm("\n"
> "mov $0x01, %eax\n" /* function number */
> ".byte 0x0f, 0x3f, 0x07, 0x0b\n" /* call VPC */
> );
> printf("Inside Virtual PC\n");
> return 0;
> }
Well, isn't that "interesting". 0F 3F is in the range expected
(although not documented) to be used for 3-byte opcode prefixes in the
future. It's also the Centaur ALTINST instruction (which I believe have
to be enabled via an MSR, so in that way it's not a bad choice.)
It's definitely less broken than the official way to detect VMWare, but
still pretty daft. (CPUID, MSR or PCI IDs make a lot more sense.)
The "official" way to detect Virtual PC is apparently to look for
"Microsoft Corportation" as the DMI motherboard manufacturer. This is
downright dangerously stupid, since Microsoft likes to make false starts
in the hardware business on a regular basis, and doesn't work with old
Connectix VPC anyway. However, there is supposedly "Virtual Machine" as
the model, which can be used to disambiguate.
-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists