• Paul Mackerras's avatar
    KVM: PPC: Book3S HV: Fix H_PROD to actually wake the target vcpu · 8464c884
    Paul Mackerras authored
    The H_PROD hypercall is supposed to wake up an idle vcpu.  We have
    an implementation, but because Linux doesn't use it except when
    doing cpu hotplug, it was never tested properly.  AIX does use it,
    and reported it broken.  It turns out we were waking the wrong
    vcpu (the one doing H_PROD, not the target of the prod) and we
    weren't handling the case where the target needs an IPI to wake
    it.  Fix it by using the existing kvmppc_fast_vcpu_kick_hv()
    function, which is intended for this kind of thing, and by using
    the target vcpu not the current vcpu.
    
    We were also not looking at the prodded flag when checking whether a
    ceded vcpu should wake up, so this adds checks for the prodded flag
    alongside the checks for pending exceptions.
    Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
    8464c884
book3s_hv.c 95.6 KB