Re: [RFC] x86/mm/KASLR: Remap GDTs at fixed location

From: Ingo Molnar
Date: Fri Jan 06 2017 - 01:57:44 EST



* Thomas Garnier <thgarnie@xxxxxxxxxx> wrote:

> >> Not sure I fully understood and I don't want to miss an important point. Do
> >> you mean making GDT (remapping and per-cpu) read-only and switch the
> >> writeable flag only when we write to the per-cpu entry?
> >
> > What I mean is: write to the GDT through normal percpu access (or whatever the
> > normal mapping is) but load a read-only alias into the GDT register. As long
> > as nothing ever tries to write through the GDTR alias, no page faults will be
> > generated. So we just need to make sure that nothing ever writes to it
> > through GDTR. AFAIK the only reason the CPU ever writes to the address in
> > GDTR is to set an accessed bit.
>
> A write is made when we use load_TR_desc (ltr). I didn't see any other yet.

Is this write to the GDT, generated by the LTR instruction, done unconditionally
by the hardware?

Thanks,

Ingo