• Paul Mackerras's avatar
    KVM: PPC: Book3S HV: Avoid unbalanced increments of VPA yield count · 8c2dbb79
    Paul Mackerras authored
    The yield count in the VPA is supposed to be incremented every time
    we enter the guest, and every time we exit the guest, so that its
    value is even when the vcpu is running in the guest and odd when it
    isn't.  However, it's currently possible that we increment the yield
    count on the way into the guest but then find that other CPU threads
    are already exiting the guest, so we go back to nap mode via the
    secondary_too_late label.  In this situation we don't increment the
    yield count again, breaking the relationship between the LSB of the
    count and whether the vcpu is in the guest.
    
    To fix this, we move the increment of the yield count to a point
    after we have checked whether other CPU threads are exiting.
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    8c2dbb79
book3s_hv_rmhandlers.S 45.3 KB