On Mon, May 20, 2013 at 8:59 PM, Theo de Raadt <dera...@cvs.openbsd.org> wrote: >> On Mon, May 20, 2013 at 8:42 PM, Mike Larkin <mlar...@azathoth.net> wrote: >> > On Mon, May 20, 2013 at 05:11:35PM +0000, Alexey E. Suslikov wrote: >> >> Theo de Raadt <deraadt <at> cvs.openbsd.org> writes: >> >> >> >> > If these VM's are real VM's the should start emulating the machines >> >> > they claim to be emulating correctly, or they should start advertising >> >> > that they are something "different", so that we can isolate the bullshit >> >> > factor. >> >> >> >> Ok. I see. >> >> >> >> Could we trim that down to the following? >> >> >> >> --- sys/arch/amd64/amd64/identcpu.c.orig Mon May 20 19:58:06 2013 >> >> +++ sys/arch/amd64/amd64/identcpu.c Mon May 20 20:01:08 2013 >> >> @@ -127,6 +127,7 @@ >> >> { CPUIDECX_AVX, "AVX" }, >> >> { CPUIDECX_F16C, "F16C" }, >> >> { CPUIDECX_RDRAND, "RDRAND" }, >> >> + { CPUIDECX_HV, "HV" }, >> >> }, cpu_ecpuid_ecxfeatures[] = { >> >> { CPUIDECX_LAHF, "LAHF" }, >> >> { CPUIDECX_CMPLEG, "CMPLEG" }, >> >> --- sys/arch/amd64/include/specialreg.h.orig Mon May 20 20:01:56 2013 >> >> +++ sys/arch/amd64/include/specialreg.h Mon May 20 20:06:09 2013 >> >> @@ -158,6 +158,7 @@ >> >> #define CPUIDECX_AVX 0x10000000 /* Advanced Vector >> >> Extensions */ >> >> #define CPUIDECX_F16C 0x20000000 /* 16bit fp conversion */ >> >> #define CPUIDECX_RDRAND 0x40000000 /* RDRAND instruction */ >> >> +#define CPUIDECX_HV 0x80000000 /* Hypervisor >> >> presence */ >> >> >> >> /* >> >> * "Structured Extended Feature Flags Parameters" (CPUID function 0x7, >> >> leaf 0) >> >> >> > >> > That's certainly less objectionable but I'm not sure what useful >> > information >> > this diff provides. >> >> Seen in dmesg, HV flag will indicate operating system is run under hypervisor >> and weird things are possible while running kernel code which depends on CPU >> features. >> >> After all, it is kinda documented by AMD on page 570 of >> http://support.amd.com/us/Processor_TechDocs/24594_APM_v3.pdf >> >> (AMD named it RAZ, but I put meaningful name like in FreeBSD - should we >> put a reference to above mentioned document near the define?). > > Your statements here are trying to convince us of something which is > false. > > AMD says "RAZ. Reserved for use by hypervisor to indicate guest status." > > That sentence does not translate to "The hypervisor is heavily broken > and fails to completely emulate the machine otherwise advertised by > the rest of the CPUID fields". > > It does not indicate that weird things are possible. If those weird > things are possible, it is not because the hardware is broken, but > because the *emulation of the hardware* by the VM is broken!
You misunderstood my point. I'm not trying to convince, but avoid useless work/talk in the future: * if one will see a *similar* bug report with a dmesg containing RAZ flag, there will be no need for something to explore - it's a 99% broken VM.