Re: 2.6.18-rc6-mm1: GPF loop on early boot

Ingo Molnar
2006-09-11T07:45:15Z

* Jeremy Fitzhardinge <jeremy@goop.org> wrote:

> Ingo Molnar wrote:
> >because userspace does not use it normally, while with %gs we'd switch
> >between glibc's descriptor [which must be shadowed by the CPU] and the
> >kernel's descriptor [which must be shadowed by the CPU too] - hence
> >causing a constant reloading of the shadow register.
> >
>
> Well, that means the only operation which would be different would be
> the pop %fs at the end, since only it would end up loading a null
> selector. All the other operations would presumably take just as
> long.

yes - but loading a null selector is a special-case: you dont have to
invalidate/reload the shadow, you just have to turn access off. This
might or might not make a difference on modern CPUs (it makes a
difference with older CPUs) - but it's worth a try nevertheless. You
measured a 9 cycles degradation with the %gs method, we could recover
some of that.

Ingo