architecture: 0.930 register: 0.930 kernel: 0.918 x86: 0.910 socket: 0.871 ppc: 0.843 graphic: 0.836 boot: 0.813 permissions: 0.812 network: 0.805 device: 0.803 semantic: 0.794 vnc: 0.793 performance: 0.768 files: 0.766 PID: 0.733 peripherals: 0.720 user-level: 0.703 mistranslation: 0.694 risc-v: 0.644 hypervisor: 0.633 VMM: 0.627 debug: 0.619 virtual: 0.615 assembly: 0.558 arm: 0.539 TCG: 0.488 KVM: 0.478 i386: 0.378 -------------------- x86: 0.992 kernel: 0.931 virtual: 0.909 assembly: 0.378 register: 0.328 debug: 0.151 hypervisor: 0.102 architecture: 0.070 network: 0.041 PID: 0.030 socket: 0.028 files: 0.026 boot: 0.022 TCG: 0.021 device: 0.017 semantic: 0.014 vnc: 0.006 performance: 0.005 user-level: 0.004 permissions: 0.003 graphic: 0.002 peripherals: 0.002 ppc: 0.001 mistranslation: 0.001 KVM: 0.001 VMM: 0.001 risc-v: 0.000 i386: 0.000 arm: 0.000 Doing a 64 bit load from a 32 bit local APIC register is allowed Doing u64 lapic_idregister = (u64) fix_to_virt(FIX_APIC_BASE) + 0x20; and later in an interrupt handler movq (lapic_idregister), %rcx movq (%rcx), %rcx in a linux kernel module works in qemu 0.13.91 but not on real hardware (it simply reboots). On real hardware only movl (%rcx), %ecx works (also in qemu). Commandline: qemu-system-x86_64 \ -kernel $LINUXDIR/arch/x86_64/boot/bzImage \ -hda $BUILDROOTDIR/output/images/rootfs.ext2 \ -append "root=/dev/sda rw rootfstype=ext2 maxcpus=4" \ -cpu phenom \ -smp 4 \ -gdb tcp::1234 \ -net nic -net user Guest: Vanilla Linux Kernel 2.6.37.6 64-bit with buildroot Mikael Pettersson from the linux kernel mailinglist told me it's an accepts-invalid bug in qemu. On Sun, Jun 12, 2011 at 4:03 PM, Robert Uhl