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...