Re: [RFC PATCH 02/12] PAT 64b: Basic PAT implementation

From: Siddha, Suresh B
Date: Fri Dec 14 2007 - 16:07:57 EST


On Thu, Dec 13, 2007 at 08:48:45PM -0700, Eric W. Biederman wrote:
> > + pat = PAT(0,WB) | PAT(1,WT) | PAT(2,UC_MINUS) | PAT(3,WC) |
> > + PAT(4,WB) | PAT(5,WT) | PAT(6,UC_MINUS) | PAT(7,WC);
>
> I strongly object to this configuration.
>
> The caching modes of interest are:
> PAT_WB write-back or a close as the MTRRs will allow
> used for WC today.
> PAT_UC completely uncachable not overridable by MTRRs
> and what we use today for pgprot_noncached
> PAT_WC what isn't available for current use.
>
> We should use:
> > + pat = PAT(0,WB) | PAT(1,WT) | PAT(2,WC) | PAT(3,UC) |
> > + PAT(4,WB) | PAT(5,WT) | PAT(6,WC) | PAT(7,UC);
>
> Changing the UC- which currently allows write-combining if the MTRRs specify it,
> to WC. This grandfathers in all of our current usage and changes the one
> PAT type that could today and in legacy mode specify WC to really specify WC.

That seems reasonable. But looking at mainline kernel, ioremap_nocache()
actually uses UC_MINUS. Wonder why it is not using UC (like
pgprot_noncached). I think it is ok to change ioremap_nocache() to use UC.

thanks,
suresh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/