Messages in this thread | | | Date | Thu, 25 Sep 2014 20:28:14 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH] x86: Quark: Flush TLB via CR3 not CR4.PGE in setup_arch() |
| |
* Henrique de Moraes Holschuh <hmh@hmh.eng.br> wrote:
> On Thu, 25 Sep 2014, Ingo Molnar wrote: > > > If we're adding a comment though the first thing the comment ought to say is > > > what the code does for everybody else - stuff CR3 and flush the TLB, then it > > > should comment on the exception for Quark. > > > > > > /* > > > * Locate the page directory and flush the TLB. > > > * > > > * On Quark CPUs we still have the PGE bit set so > > > * __flush_tlb_all() is not yet doing what it says - but > > > * accidentally we have a cr3 flush here which is what is > > > * needed - so there's no need to add a Quark quirk here. > > > */ > > > > > > ? > > > > Yeah, fair enough. You can even put the latter in parentheses, to > > signal that it's all a rare case. > > I'd have mentioned "erratum" there, otherwise people won't understand why > the PGE bit being set would be a problem in the first place. > > Something like: > > /* > * Locate the page directory and flush the TLB. > * > * On Quark X1000 CPUs we still have the PGE bit incorrectly set > * due to a processor erratum, so __flush_tlb_all() is not yet > * doing what it says. Fortunately we have a cr3 flush here, > * which is what is needed in this processor to flush TLBs, so > * there's no need to add a Quark X1000 quirk here. > */
Yeah.
I'd also add the fact that it's an unintended erratum to the Quark quirk section of early_init_intel() as well.
Thanks,
Ingo
| |