Re: [PATCH] x86-64: espfix for 64-bit mode *PROTOTYPE*

H. Peter Anvin
2014-04-28T23:08:25Z

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.

-hpa