Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes

Ingo Molnar
2008-01-17T22:16:06Z

* Andreas Herrmann3 <andreas.herrmann3@AMD.COM> wrote:

> On Thu, Jan 17, 2008 at 10:42:09PM +0100, Ingo Molnar wrote:
> >
> > * Siddha, Suresh B <suresh.b.siddha@intel.com> wrote:
> >
> > > On Thu, Jan 17, 2008 at 10:13:08PM +0100, Ingo Molnar wrote:
> > > > but in general we must be robust enough in this case and just degrade
> > > > any overlapping page to UC (and emit a warning perhaps) - instead of
> > > > failing the ioremap and thus failing the driver (and the bootup).
> > >
> > > But then, this will cause an attribute conflicit. Old one was
> > > specifying WB in PAT (ioremap with noflags) and the new ioremap
> > > specifies UC.
> >
> > we could fix up all aliases of that page as well and degrade them to UC?
>
> Yes, we must fix all aliases or reject the conflicting mapping. But
> fixing all aliases might not be that easy. (I've just seen a panic
> when using your patch ;-(

yes, indeed my patch is bad if you have PAT enabled: conflicting cache
attributes might be present. I'll go with your patch for now.

should we perhaps do UC by default for early_ioremap() as well? Normally
those mappings are only temporary - but in case of a leak they might
hang around in the pagetables and the CPU might stumble upon them. Also,
should early_iounmap() do a wbinvd() [/clflush()] call as well, to be
safe?

Ingo