This is an alternative to Wanpeng's series[*] to fix tick-based accounting on x86. The approach for fixing the bug is identical: defer accounting until after tick IRQs are handled. The difference is purely in how the context tracking and vtime code is refactored in order to give KVM the hooks it needs to fix the x86 bug. x86 compile tested only, hence the RFC. If folks like the direction and there are no unsolvable issues, I'll cross-compile, properly test on x86, and post an "official" series. Sean Christopherson (7): sched/vtime: Move guest enter/exit vtime accounting to separate helpers context_tracking: Move guest enter/exit logic to standalone helpers context_tracking: Consolidate guest enter/exit wrappers context_tracking: KVM: Move guest enter/exit wrappers to KVM's domain KVM: Move vtime accounting of guest exit to separate helper KVM: x86: Consolidate guest enter/exit logic to common helpers KVM: x86: Defer tick-based accounting 'til after IRQ handling arch/x86/kvm/svm/svm.c | 39 +----------- arch/x86/kvm/vmx/vmx.c | 39 +----------- arch/x86/kvm/x86.c | 8 +++ arch/x86/kvm/x86.h | 48 +++++++++++++++ include/linux/context_tracking.h | 100 ++++++++----------------------- include/linux/kvm_host.h | 50 ++++++++++++++++ include/linux/vtime.h | 45 ++++++++++++-- 7 files changed, 175 insertions(+), 154 deletions(-) -- 2.31.1.295.g9ea45b61b8-goog