[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 3/3] x86: decouple pat and mtrr handling
On 7/15/22 10:25 AM, Juergen Gross wrote: > Today PAT is usable only with MTRR being active, with some nasty tweaks > to make PAT usable when running as Xen PV guest, which doesn't support > MTRR. > > The reason for this coupling is, that both, PAT MSR changes and MTRR > changes, require a similar sequence and so full PAT support was added > using the already available MTRR handling. > > Xen PV PAT handling can work without MTRR, as it just needs to consume > the PAT MSR setting done by the hypervisor without the ability and need > to change it. This in turn has resulted in a convoluted initialization > sequence and wrong decisions regarding cache mode availability due to > misguiding PAT availability flags. > > Fix all of that by allowing to use PAT without MTRR and by adding an > environment dependent PAT init function. > > Cc: <stable@xxxxxxxxxxxxxxx> # 5.17 > Fixes: bdd8b6c98239 ("drm/i915: replace X86_FEATURE_PAT with pat_enabled()") > Signed-off-by: Juergen Gross <jgross@xxxxxxxx> > --- ... > diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c > index d5ef64ddd35e..3d4bc27ffebb 100644 > --- a/arch/x86/mm/pat/memtype.c > +++ b/arch/x86/mm/pat/memtype.c > ... > > +void pat_init_noset(void) > +{ > + pat_bp_enabled = true; > + init_cache_modes(); > +} This is what should fix the regression caused by commit bdd8b6c98239 ("drm/i915: replace X86_FEATURE_PAT with pat_enabled()"). Thanks for including this. This function might need a better name. Does noset refer to the fact that when we use this function, we do not set or write to the PAT MSR? Maybe it should be pat_init_noset_msr. Is Xen PV Dom0 the only case when this function will be called or is it also for unprivileged Xen PV domains? Then maybe it should be named pat_init_xen_pv_dom0 or maybe just pat_init_xen_pv if it is also used with unprivileged Xen PV domains. Or, if you want to keep the name as pat_init_noset, maybe it should be preceded by a comment clearly explaining this function is currently only for the Xen PV and/or the Xen PV Dom0 case when we don't write to the PAT MSR and we still want to report PAT as enabled in those cases. Chuck
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |