Re: [GIT PULL] x86/topology changes for v5.3

From: Thomas Gleixner
Date: Wed Jul 10 2019 - 10:26:16 EST


On Wed, 10 Jul 2019, Thomas Gleixner wrote:

> On Wed, 10 Jul 2019, Peter Zijlstra wrote:
>
> > On Wed, Jul 10, 2019 at 09:25:16PM +0800, Xi Ruoyao wrote:
> > > On 2019-07-10 14:31 +0200, Jiri Kosina wrote:
> > > > Adding Daniel to check whether this couldn't be some fallout of jumplabel
> > > > batching.
> > >
> > > I don't think so. I tried to revert Daniel's jumplabel batching commits and the
> > > issue wasn't solved. But reverting Kees' CR0 and CR4 commits can "fix" it
> > > (apprently).
> >
> > Xi, could you please try the below instead?
> >
> > If we mark the key as RO after init, and then try and modify the key to
> > link module usage sites, things might go bang as described.
>
> Right. I finally was able to reproduce that with Linus' config (slightly
> modified). Applying your patch makes it go away.
>
> Now what puzzles me is that this never exploded in my face before and with
> a debian config it JustWorks.
>
> Both configs have:
>
> CONFIG_KVM=m
> CONFIG_KVM_INTEL=m
>
> so I'd expect both to crash and burn when KVM_INTEL is loaded as that has a
> cr4 operation inside.
>
> So something papers over that ... Still looking.

Just found it. All my usual configs have the paravirt muck enabled. Linus's
config does not, neither has Xi's.

With paravirt the CR pinning key is never in the module. It's in the
paravirt function and obviously always built in.

Thanks,

tglx