• Juergen Gross's avatar
    x86: Make page cache mode a real type · 281d4078
    Juergen Gross authored
    At the moment there are a lot of places that handle setting or getting
    the page cache mode by treating the pgprot bits equal to the cache mode.
    This is only true because there are a lot of assumptions about the setup
    of the PAT MSR. Otherwise the cache type needs to get translated into
    pgprot bits and vice versa.
    
    This patch tries to prepare for that by introducing a separate type
    for the cache mode and adding functions to translate between those and
    pgprot values.
    
    To avoid too much performance penalty the translation between cache mode
    and pgprot values is done via tables which contain the relevant
    information.  Write-back cache mode is hard-wired to be 0, all other
    modes are configurable via those tables. For large pages there are
    translation functions as the PAT bit is located at different positions
    in the ptes of 4k and large pages.
    Based-on-patch-by: default avatarStefan Bader <stefan.bader@canonical.com>
    Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
    Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: stefan.bader@canonical.com
    Cc: xen-devel@lists.xensource.com
    Cc: konrad.wilk@oracle.com
    Cc: ville.syrjala@linux.intel.com
    Cc: david.vrabel@citrix.com
    Cc: jbeulich@suse.com
    Cc: toshi.kani@hp.com
    Cc: plagnioj@jcrosoft.com
    Cc: tomi.valkeinen@ti.com
    Cc: bhelgaas@google.com
    Link: http://lkml.kernel.org/r/1415019724-4317-2-git-send-email-jgross@suse.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    281d4078
pgtable_types.h 15 KB