On Tue, 12 Dec 2017, Peter Zijlstra wrote:

> On Tue, Dec 12, 2017 at 10:22:48AM -0800, Andy Lutomirski wrote:
> > 
> > Also, why is LAR deferred to user exit?  And I thought that LAR didn't
> > set the accessed bit.
> 
> LAR does not set the ACCESSED bit indeed, we need to explicitly set that
> when creating the descriptor.
> 
> It also works if you do the LAR right after LLDT (which is what I
> originally had). The reason its a TIF flag is that I originally LAR'ed
> every entry in the table.
> 
> It got reduced to CS/SS, but the TIF thing stayed.
> 
> > If I had to guess, I'd guess that LAR is actually generating a read
> > fault and forcing the pagetables to get populated.  If so, then it
> > means the VMA code isn't quite right, or you're susceptible to
> > failures under memory pressure.
> > 
> > Now maybe LAR will repopulate the PTE every time if you were to never
> > clear it, but ick.
> 
> I did not observe #PFs from LAR, we had a giant pile of trace_printk()
> in there.

The pages are populated _before_ the new ldt is installed. So no memory
pressure issue, nothing. If the populate fails, then modify_ldt() returns
with an error.

Thanks,

        tglx

Reply via email to