Messages in this thread | | | From | (Eric W. Biederman) | Date | Tue, 29 Sep 2015 20:20:19 -0500 | Subject | Re: [PATCH] x86: Use entire page for the per-cpu GDT only if paravirt-enabled |
| |
Linus Torvalds <torvalds@linux-foundation.org> writes:
> On Tue, Sep 29, 2015 at 1:35 PM, Andy Lutomirski <luto@amacapital.net> wrote: >> >> Does anyone know what happens if you stick a non-accessed segment in >> the GDT, map the GDT RO, and access it? > > You should get a #PF, as you guess, but go ahead and test it if you > want to make sure.
I tested this by accident once when workinng on what has become known as coreboot. Early in boot with your GDT in a EEPROM switching from real mode to 32bit protected mode causes a write and locks up the machine when the hardware declines the write to the GDT to set the accessed bit. As I recall the write kept being retried and retried and retried...
Setting the access bit in the GDT cleared up the problem and I did not look back.
Way up in 64bit mode something might be different, but I don't know why cpu designeres would waste the silicon.
Eric
| |