Re: [RFC PATCH 0/11] Support Write-Through mapping on x86

From: Konrad Rzeszutek Wilk
Date: Mon Jul 21 2014 - 14:37:43 EST


On Mon, Jul 21, 2014 at 10:32:34AM -0700, H. Peter Anvin wrote:
> On 07/21/2014 10:16 AM, Toshi Kani wrote:
> >
> > You are right. I was under a wrong impression that
> > __change_page_attr() always splits a large pages into 4KB pages, but I
> > overlooked the fact that it can handle a large page as well. So, this
> > approach does not work...
> >
>
> If it did it would be a major fail.
>
> >> I would also like a systematic way to deal with the fact
> >> that Xen (sigh) is stuck with a separate mapping system.
> >>
> >> I guess Linux could adopt the Xen mappings if that makes it easier, as
> >> long as that doesn't have a negative impact on native hardware -- we can
> >> possibly deal with some older chips not being optimal.
> >
> > I see. I agree that supporting the PAT bit is the right direction, but
> > I do not know how much effort we need. I will study on this.
> >
> >> However, my thinking has been to have a "reverse PAT" table in memory of memory
> >> types to encodings, both for regular and large pages.
> >
> > I am not clear about your idea of the "reverse PAT" table. Would you
> > care to elaborate? How is it different from using pte_val() being a
> > paravirt function on Xen?
>
> First of all, paravirt functions are the root of all evil, and we want

Here I was thinking to actually put an entry in the MAINTAINERS
file for me to become the owner of it - as the folks listed there
are busy with other things.

The Maintainer of 'All Evil' has an interesting ring to it :-)

> to reduce and eliminate them to the utmost level possible. But yes, we
> could plumb that up that way if we really need to.
>
> What I'm thinking of is a table which can deal with both the moving PTE
> bit, Xen, and the scattered encodings by having a small table from types
> to encodings, and not use the encodings directly until fairly late it
> the pipe. I suspect, but I'm not sure, that we would also need the
> inverse operation.

Mr Toshi-san,

This link: http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/arch/x86/hvm/mtrr.c;h=ee18553cdac58dd16836011ee714517fbc16368d;hb=HEAD#l74 might help you in figuring how this can be done.

Thought I have to say that the code is quite complex so it might
be more confusing then helpful.
--
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/