Re: [PATCH v5 5/5] x86/kvm: Avoid dynamic allocation of pvclock data when SEV is active

From: Sean Christopherson
Date: Thu Sep 06 2018 - 14:45:37 EST


On Thu, Sep 06, 2018 at 08:33:34PM +0200, Borislav Petkov wrote:
> On Thu, Sep 06, 2018 at 08:54:52AM -0700, Sean Christopherson wrote:
> > My thought was that we could simply define a second array for the SEV
> > case to statically allocate for NR_CPUS since __decrypted has a big
> > chunk of memory that would be ununsed anyways[1]. And since the second
> > array is only used for SEV it can be freed if !SEV.
>
> Lemme see if I get it straight:
>
> __decrypted:
>
> 4K
>
> __decrypted_XXX:
>
> ((num_possible_cpus() * 32) / 4K) pages
>
> __decrypted_end:
>
> Am I close?

Yep, though because the 4k chunk in __decrypted is @hv_clock_boot
that's used for cpus 0-127, __decrypted_XXX would effectively be:

(((num_possible_cpus() * 32) / 4k) - 1) pages