Re: [kvm-devel] [BUG] Oops with KVM-27

From: Avi Kivity
Date: Thu Jun 14 2007 - 04:26:41 EST


Luca Tettamanti wrote:
With GOOD_APIC apic_read_around is a nop, while apic_write_around is a
normal write. With !GOOD_APIC apic_write_around writes to the APIC reg
using xchg. With !GOOD_APIC and this patch:

--- include/asm-i386/apic.h~ 2007-04-26 05:08:32.000000000 +0200
+++ include/asm-i386/apic.h 2007-06-13 22:35:00.000000000 +0200
@@ -56,7 +56,8 @@
static __inline fastcall void native_apic_write_atomic(unsigned long reg,
unsigned long v)
{
- xchg((volatile unsigned long *)(APIC_BASE+reg), v);
+// xchg((volatile unsigned long *)(APIC_BASE+reg), v);
+ *((volatile unsigned long *)(APIC_BASE+reg)) = v;
}
static __inline fastcall unsigned long native_apic_read(unsigned long reg)

The kernel boots fine.

Looking at the xchg emulation code, it seems fine, but clearly it isn't. Can you add logging to the kernel apic driver and to the qemu device emulation (qemu/hw/apic.c, apic_mem_readl()/apic_mem_writel()) and compare the results?

--
error compiling committee.c: too many arguments to function

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