lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 10 Aug 2021 17:21:05 +0200 From: Thomas Gleixner <tglx@...utronix.de> To: Hikaru Nishida <hikalium@...omium.org>, linux-kernel@...r.kernel.org, dme@....org, mlevitsk@...hat.com Cc: suleiman@...gle.com, Hikaru Nishida <hikalium@...omium.org>, Borislav Petkov <bp@...en8.de>, "H. Peter Anvin" <hpa@...or.com>, Ingo Molnar <mingo@...hat.com>, Jim Mattson <jmattson@...gle.com>, Joerg Roedel <joro@...tes.org>, John Stultz <john.stultz@...aro.org>, Paolo Bonzini <pbonzini@...hat.com>, Sean Christopherson <seanjc@...gle.com>, Stephen Boyd <sboyd@...nel.org>, Vitaly Kuznetsov <vkuznets@...hat.com>, Wanpeng Li <wanpengli@...cent.com>, kvm@...r.kernel.org, x86@...nel.org Subject: Re: [v2 PATCH 3/4] x86/kvm: Add host side support for virtual suspend time injection On Fri, Aug 06 2021 at 19:07, Hikaru Nishida wrote: > This patch implements virtual suspend time injection support for kvm git grep 'This patch' Documentation/process/ > hosts. > > If this functionality is enabled and the guest requests it, the host > will stop all the clocks observed by the guest during the host's > suspension and report the duration of suspend to the guest through > struct kvm_host_suspend_time to give a chance to adjust CLOCK_BOOTTIME > to the guest. This mechanism can be used to align the guest's clock > behavior to the hosts' ones. > > Signed-off-by: Hikaru Nishida <hikalium@...omium.org> > --- > > arch/x86/include/asm/kvm_host.h | 5 ++ > arch/x86/kvm/Kconfig | 13 ++++ > arch/x86/kvm/cpuid.c | 4 ++ > arch/x86/kvm/x86.c | 109 +++++++++++++++++++++++++++++++- > include/linux/kvm_host.h | 8 +++ > kernel/time/timekeeping.c | 3 + Please split this into adding the infrastructure and then implementing the x86 side of it. > > +#ifdef CONFIG_KVM_VIRT_SUSPEND_TIMING > +void kvm_arch_timekeeping_inject_sleeptime(const struct timespec64 *delta); +#else +static inline void kvm_arch_timekeeping_inject_sleeptime(const struct timespec64 *delta){} > +#endif /* CONFIG_KVM_VIRT_SUSPEND_TIMING */ > + > #endif > diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c > index 233ceb6cce1f..3ac3fb479981 100644 > --- a/kernel/time/timekeeping.c > +++ b/kernel/time/timekeeping.c > @@ -1797,6 +1797,9 @@ void timekeeping_resume(void) > if (inject_sleeptime) { > suspend_timing_needed = false; > __timekeeping_inject_sleeptime(tk, &ts_delta); > +#ifdef CONFIG_KVM_VIRT_SUSPEND_TIMING > + kvm_arch_timekeeping_inject_sleeptime(&ts_delta); > +#endif which get's rid of these ugly ifdefs. Also this is the wrong place because sleep time can be injected from other places as well. This should be in __timekeeping_inject_sleeptime() if at all. Thanks, tglx
Powered by blists - more mailing lists