• Leonardo Bras's avatar
    kvm: Note an RCU quiescent state on guest exit · 59337703
    Leonardo Bras authored
    As of today, KVM notes a quiescent state only in guest entry, which is good
    as it avoids the guest being interrupted for current RCU operations.
    
    While the guest vcpu runs, it can be interrupted by a timer IRQ that will
    check for any RCU operations waiting for this CPU. In case there are any of
    such, it invokes rcu_core() in order to sched-out the current thread and
    note a quiescent state.
    
    This occasional schedule work will introduce tens of microsseconds of
    latency, which is really bad for vcpus running latency-sensitive
    applications, such as real-time workloads.
    
    So, note a quiescent state in guest exit, so the interrupted guests is able
    to deal with any pending RCU operations before being required to invoke
    rcu_core(), and thus avoid the overhead of related scheduler work.
    Signed-off-by: default avatarLeonardo Bras <leobras@redhat.com>
    Acked-by: default avatarPaul E. McKenney <paulmck@kernel.org>
    Acked-by: default avatarSean Christopherson <seanjc@google.com>
    Message-ID: <20240511020557.1198200-1-leobras@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    59337703
context_tracking.h 4.21 KB