On Mon, Apr 28, 2014 at 4:08 PM, H. Peter Anvin <h...@linux.intel.com> wrote: > On 04/28/2014 04:05 PM, H. Peter Anvin wrote: >> >> So I tried writing this bit up, but it fails in some rather spectacular >> ways. Furthermore, I have been unable to debug it under Qemu, because >> breakpoints don't work right (common Qemu problem, sadly.) >> >> The kernel code is at: >> >> https://git.kernel.org/cgit/linux/kernel/git/hpa/espfix64.git/ >> >> There are two tests: >> >> git://git.zytor.com/users/hpa/test16/test16.git, build it, and run >> ./run16 test/hello.elf >> http://www.zytor.com/~hpa/ldttest.c >> >> The former will exercise the irq_return_ldt path, but not the fault >> path; the latter will exercise the fault path, but doesn't actually use >> a 16-bit segment. >> >> Under the 3.14 stock kernel, the former should die with SIGBUS and the >> latter should pass. >> > > Current status of the above code: if I remove the randomization in > espfix_64.c then the first test passes; the second generally crashes the > machine. With the randomization there, both generally crash the machine. > > All my testing so far has been under KVM or Qemu, so there is always the > possibility that I'm chasing a KVM/Qemu bug, but I suspect it is > something simpler than that.
I'm compiling your branch. In the mean time, two possibly stupid questions: What's the assembly code in the double-fault entry for? Have you tried hbreak in qemu? I've had better luck with hbreak than regular break in the past. --Andy -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/