From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Christopherson Subject: Re: [PATCH v6 5/5] x86/kvm: Avoid dynamic allocation of pvclock data when SEV is active Date: Mon, 10 Sep 2018 09:13:23 -0700 Message-ID: <1536596003.11460.82.camel@intel.com> References: <1536343050-18532-1-git-send-email-brijesh.singh@amd.com> <1536343050-18532-6-git-send-email-brijesh.singh@amd.com> <20180910122727.GE21815@zn.tnic> <026d5ca5-7b77-de6c-477e-ff39f0291ac0@amd.com> <20180910155329.GB20286@zn.tnic> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Cc: x86@kernel.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Tom Lendacky , Thomas Gleixner , "H. Peter Anvin" , Paolo Bonzini , Radim =?UTF-8?Q?Kr=C4=8Dm=C3=A1=C5=99?= To: Borislav Petkov , Brijesh Singh Return-path: In-Reply-To: <20180910155329.GB20286@zn.tnic> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On Mon, 2018-09-10 at 17:53 +0200, Borislav Petkov wrote: > On Mon, Sep 10, 2018 at 08:15:38AM -0500, Brijesh Singh wrote: > > > > > > > > Now, the real question from all this SNAFU is, why can't all those point > > > to a single struct pvclock_vsyscall_time_info and all CPUs read a single > > > thing? Why do they have to be per-CPU and thus waste so much memory? > You forgot to answer to the real question - why do we need those things > to be perCPU and why can't we use a single instance to share with *all* > CPUs? I can't speak to the actual TSC stuff, but... The pvclock ABI includes a per-vCPU bit, PVCLOCK_GUEST_STOPPED, to indicate that the VM has been paused by the host.  The guest uses this information to update its watchdogs to avoid false positives.  I have no idea if there are use cases for setting STOPPED on a subset of vCPUs, but the ABI allows it so here we are...