On 05/05/2010 01:18 PM, Andre Przywara wrote:
Michael Tokarev wrote:
05.05.2010 12:32, Andre Przywara wrote:
Avi Kivity wrote:
On 05/04/2010 06:27 PM, Andre Przywara wrote:
3. In all other cases so far it BSoDs with STOP 0x3E error
right before displaying that kernel message.
MSDN talks about a mulitprocessor configuration error:
http://msdn.microsoft.com/en-us/library/ms819006.aspx
I suspected the offline CPUs in the mptable that confuse NT. But -smp
1,maxcpus=1 does not make a difference. I will try to dig deeper in
this area.
OK, I tackled this down. It is the max CPUID level that differs.
In the AMD CPUID guide leafs 0000_0002 till 0000_0004 are reserved, the
CPU that Michael and I used (K8RevF) actually have a max leaf of 1
here.
Default qemu64 has a max leaf of 4.
So by saying -cpu qemu64,level=1 (or 2 or 3) it works for me.
Modern OS only read leaf 4 on Intel systems, it seems that NT4 is
missing this.
Confirmed, with -cpu qemu64,level=[123] it works for me as well.
The strange thing is that NT4 never reads leaf 4:
kvm-2341 [003] 228.527874: kvm_cpuid: func 40000000 rax 0 rbx
4b4d564b rcx 564b4d56 rdx 4d
kvm-2341 [003] 228.530033: kvm_cpuid: func 1 rax 623 rbx 800 rcx
80002001 rdx 78bfbfd
kvm-2341 [003] 228.530081: kvm_cpuid: func 80000000 rax 8000000a
rbx 68747541 rcx 444d4163 rdx 69746e65
kvm-2341 [003] 228.530084: kvm_cpuid: func 80000008 rax 3028 rbx 0
rcx 0 rdx 0
kvm-2341 [003] 228.530147: kvm_cpuid: func 1 rax 623 rbx 800 rcx
80002001 rdx 78bfbfd
kvm-2341 [002] 228.538254: kvm_cpuid: func 1 rax 623 rbx 800 rcx
80002001 rdx 78bfbfd
kvm-2341 [002] 228.539902: kvm_cpuid: func 1 rax 623 rbx 800 rcx
80002001 rdx 78bfbfd
kvm-2341 [002] 236.273370: kvm_cpuid: func 1 rax 623 rbx 800 rcx
80002001 rdx 78bfbfd
kvm-2341 [002] 236.273381: kvm_cpuid: func 0 rax 4 rbx 68747541 rcx
444d4163 rdx 69746e65
So maybe it's just a simple guest bug that was never encountered in real
life because no processors had that leaf.
With level=4 it BSODs afterwards, with level=1 it beyond that:
kvm-2472 [002] 871.379192: kvm_cpuid: func 1 rax 623 rbx 800 rcx
80002001 rdx 78bfbfd
kvm-2472 [002] 871.379235: kvm_cpuid: func 0 rax 1 rbx 68747541 rcx
444d4163 rdx 69746e65
kvm-2472 [002] 871.379238: kvm_cpuid: func 1 rax 623 rbx 800 rcx
80002001 rdx 78bfbfd
....
Interestingly it also accesses leaf 8000_0008, I thought that that
leaf wasn't around in 1996.
It's the bios:
src/mtrr.c: cpuid(0x80000008u, &eax, &ebx, &ecx, &edx);
--
error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html