• Christian Borntraeger's avatar
    [S390] s390-kvm: leave sie context on work. Removes preemption requirement · 0eaeafa1
    Christian Borntraeger authored
    From: Martin Schwidefsky <schwidefsky@de.ibm.com>
    
    This patch fixes a bug with cpu bound guest on kvm-s390. Sometimes it
    was impossible to deliver a signal to a spinning guest. We used
    preemption as a circumvention. The preemption notifiers called
    vcpu_load, which checked for pending signals and triggered a host
    intercept. But even with preemption, a sigkill was not delivered
    immediately.
    
    This patch changes the low level host interrupt handler to check for the
    SIE  instruction, if TIF_WORK is set. In that case we change the
    instruction pointer of the return PSW to rerun the vcpu_run loop. The kvm
    code sees an intercept reason 0 if that happens. This patch adds accounting
    for these types of intercept as well.
    
    The advantages:
    - works with and without preemption
    - signals are delivered immediately
    - much better host latencies without preemption
    Acked-by: default avatarCarsten Otte <cotte@de.ibm.com>
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    0eaeafa1
kvm-s390.c 17.7 KB