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, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>