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

From: Chuck Zmudzinski
Date: Tue Jul 12 2022 - 15:58:00 EST


On 7/12/22 3:26 PM, Greg KH wrote:
> On Tue, Jul 12, 2022 at 03:16:01PM -0400, Chuck Zmudzinski wrote:
> > 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.
>
> If it needs to go back to 4.9.y or so, let's take it all the way back to
> be consistent everywhere.
>
> thanks,
>
> greg k-h

I presume you want me to prepare the backport patches, or at
least the ones that need the patch to be significantly modified to
apply to those branches. I expect older versions will need the
patch to be significantly modified to apply. If not, please let me know.

Is 4.9.y the oldest version we are still supporting?

Chuck