Re: [PATCH] x86/PAT: Report PAT on CPUs that support PAT without MTRR

From: Chuck Zmudzinski
Date: Tue Jul 12 2022 - 15:40:34 EST


On 7/12/22 2:36 PM, Greg KH wrote:
> On Tue, Jul 12, 2022 at 02:20:37PM -0400, Chuck Zmudzinski wrote:
> > The commit 99c13b8c8896d7bcb92753bf
> > ("x86/mm/pat: Don't report PAT on CPUs that don't support it")
> > incorrectly failed to account for the case in init_cache_modes() when
> > CPUs do support PAT and falsely reported PAT to be disabled when in
> > fact PAT is enabled. In some environments, notably in Xen PV domains,
> > MTRR is disabled but PAT is still enabled, and that is the case
> > that the aforementioned commit failed to account for.
> >
> > As an unfortunate consequnce, the pat_enabled() function currently does
> > not correctly report that PAT is enabled in such environments. The fix
> > is implemented in init_cache_modes() by setting pat_bp_enabled to true
> > in init_cache_modes() for the case that commit 99c13b8c8896d7bcb92753bf
> > ("x86/mm/pat: Don't report PAT on CPUs that don't support it") failed
> > to account for.
> >
> > This patch fixes a regression that some users are experiencing with
> > Linux as a Xen Dom0 driving particular Intel graphics devices by
> > correctly reporting to the Intel i915 driver that PAT is enabled where
> > previously it was falsely reporting that PAT is disabled.
> >
> > Fixes: 99c13b8c8896d7bcb92753bf ("x86/mm/pat: Don't report PAT on CPUs that don't support it")
> > Cc: stable@xxxxxxxxxxxxxxx
> > Signed-off-by: Chuck Zmudzinski <brchuckz@xxxxxxx>
> > ---
> > Reminder: This patch is a regression fix that is needed on stable
> > versions 5.17 and later.
>
> Then why are you saying it fixes a commit that is in 4.4.y and newer?
>
> confused,
>
> greg k-h

It is true the erroneous reporting of PAT goes back to 4.4.y. But it
was not until 5.17.y when the i915 driver was patched with a commit
that started using pat_enabled() instead of boot_cpu_has(X86_FEATURE_PAT)
and that is when a regression that started annoying users appeared
in the kernel. I presume that we only backport patches to stable that
fix regressions that are really bothering users, so even though the
problem dates to 4.4.y, there is no need to backport before 5.17.y
which is when the problem manifested in a way that started
bothering users.

Chuck