lkml.org 
[lkml]   [2022]   [Jul]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 0/3] x86: make pat and mtrr independent from each other
    From
    On 7/16/2022 7:32 AM, Chuck Zmudzinski wrote:
    > On 7/15/2022 10:25 AM, Juergen Gross wrote:
    > > Today PAT can't be used without MTRR being available, unless MTRR is at
    > > least configured via CONFIG_MTRR and the system is running as Xen PV
    > > guest. In this case PAT is automatically available via the hypervisor,
    > > but the PAT MSR can't be modified by the kernel and MTRR is disabled.
    > >
    > > As an additional complexity the availability of PAT can't be queried
    > > via pat_enabled() in the Xen PV case, as the lack of MTRR will set PAT
    > > to be disabled. This leads to some drivers believing that not all cache
    > > modes are available, resulting in failures or degraded functionality.
    > >
    > > The same applies to a kernel built with no MTRR support: it won't
    > > allow to use the PAT MSR, even if there is no technical reason for
    > > that, other than setting up PAT on all cpus the same way (which is a
    > > requirement of the processor's cache management) is relying on some
    > > MTRR specific code.
    > >
    > > Fix all of that by:
    > >
    > > - moving the function needed by PAT from MTRR specific code one level
    > > up
    > > - adding a PAT indirection layer supporting the 3 cases "no or disabled
    > > PAT", "PAT under kernel control", and "PAT under Xen control"
    > > - removing the dependency of PAT on MTRR
    > >
    > > Juergen Gross (3):
    > > x86: move some code out of arch/x86/kernel/cpu/mtrr
    > > x86: add wrapper functions for mtrr functions handling also pat
    > > x86: decouple pat and mtrr handling
    > >
    > > arch/x86/include/asm/memtype.h | 13 ++-
    > > arch/x86/include/asm/mtrr.h | 27 ++++--
    > > arch/x86/include/asm/processor.h | 10 +++
    > > arch/x86/kernel/cpu/common.c | 123 +++++++++++++++++++++++++++-
    > > arch/x86/kernel/cpu/mtrr/generic.c | 90 ++------------------
    > > arch/x86/kernel/cpu/mtrr/mtrr.c | 58 ++++---------
    > > arch/x86/kernel/cpu/mtrr/mtrr.h | 1 -
    > > arch/x86/kernel/setup.c | 12 +--
    > > arch/x86/kernel/smpboot.c | 8 +-
    > > arch/x86/mm/pat/memtype.c | 127 +++++++++++++++++++++--------
    > > arch/x86/power/cpu.c | 2 +-
    > > arch/x86/xen/enlighten_pv.c | 4 +
    > > 12 files changed, 289 insertions(+), 186 deletions(-)
    > >
    >
    > This patch series seems related to the regression reported
    > here on May 5, 2022:

    I'm sorry, the date of that report was May 4, 2022, not
    May 5, 2022 - just to avoid any doubt about which regression
    I am referring to.

    Chuck

    >
    > https://lore.kernel.org/regressions/YnHK1Z3o99eMXsVK@mail-itl/
    >
    > I am experiencing that regression

    or a very similar regression that is caused by the same commit:

    bdd8b6c98239cad
    ("drm/i915: replace X86_FEATURE_PAT with pat_enabled()")

    > and could test this patch
    > on my system.
    >
    > Can you confirm that with this patch series you are trying
    > to fix that regression?
    >
    > Chuck

    Chuck

    \
     
     \ /
      Last update: 2022-07-16 14:04    [W:3.792 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site