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



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/



Relevant Pages

  • Re: [kvm-devel] [BUG] Oops with KVM-27
    ... With!GOOD_APIC apic_write_around writes to the APIC reg ... With!GOOD_APIC and this patch: ... Looking at the xchg emulation code, it seems fine, but clearly it ... The emulator skips the writeback if the old value is unchanged, ...
    (Linux-Kernel)
  • Re: [kvm-devel] [BUG] Oops with KVM-27
    ... With!GOOD_APIC apic_write_around writes to the APIC reg ... With!GOOD_APIC and this patch: ... The kernel boots fine. ... Looking at the xchg emulation code, it seems fine, but clearly it ...
    (Linux-Kernel)
  • Re: [kvm-devel] [BUG] Oops with KVM-27
    ... The kernel boots fine. ... Looking at the xchg emulation code, it seems fine, but clearly it ... I'm attaching logs for working and non working kernels. ...
    (Linux-Kernel)