• Mahesh Salgaonkar's avatar
    KVM: PPC: Book3S HV: Fix an issue where guest is paused on receiving HMI · dee6f24c
    Mahesh Salgaonkar authored
    When we get an HMI (hypervisor maintenance interrupt) while in a
    guest, we see that guest enters into paused state.  The reason is, in
    kvmppc_handle_exit_hv it falls through default path and returns to
    host instead of resuming guest.  This causes guest to enter into
    paused state.  HMI is a hypervisor only interrupt and it is safe to
    resume the guest since the host has handled it already.  This patch
    adds a switch case to resume the guest.
    
    Without this patch we see guest entering into paused state with following
    console messages:
    
    [ 3003.329351] Severe Hypervisor Maintenance interrupt [Recovered]
    [ 3003.329356]  Error detail: Timer facility experienced an error
    [ 3003.329359] 	HMER: 0840000000000000
    [ 3003.329360] 	TFMR: 4a12000980a84000
    [ 3003.329366] vcpu c0000007c35094c0 (40):
    [ 3003.329368] pc  = c0000000000c2ba0  msr = 8000000000009032  trap = e60
    [ 3003.329370] r 0 = c00000000021ddc0  r16 = 0000000000000046
    [ 3003.329372] r 1 = c00000007a02bbd0  r17 = 00003ffff27d5d98
    [ 3003.329375] r 2 = c0000000010980b8  r18 = 00001fffffc9a0b0
    [ 3003.329377] r 3 = c00000000142d6b8  r19 = c00000000142d6b8
    [ 3003.329379] r 4 = 0000000000000002  r20 = 0000000000000000
    [ 3003.329381] r 5 = c00000000524a110  r21 = 0000000000000000
    [ 3003.329383] r 6 = 0000000000000001  r22 = 0000000000000000
    [ 3003.329386] r 7 = 0000000000000000  r23 = c00000000524a110
    [ 3003.329388] r 8 = 0000000000000000  r24 = 0000000000000001
    [ 3003.329391] r 9 = 0000000000000001  r25 = c00000007c31da38
    [ 3003.329393] r10 = c0000000014280b8  r26 = 0000000000000002
    [ 3003.329395] r11 = 746f6f6c2f68656c  r27 = c00000000524a110
    [ 3003.329397] r12 = 0000000028004484  r28 = c00000007c31da38
    [ 3003.329399] r13 = c00000000fe01400  r29 = 0000000000000002
    [ 3003.329401] r14 = 0000000000000046  r30 = c000000003011e00
    [ 3003.329403] r15 = ffffffffffffffba  r31 = 0000000000000002
    [ 3003.329404] ctr = c00000000041a670  lr  = c000000000272520
    [ 3003.329405] srr0 = c00000000007e8d8 srr1 = 9000000000001002
    [ 3003.329406] sprg0 = 0000000000000000 sprg1 = c00000000fe01400
    [ 3003.329407] sprg2 = c00000000fe01400 sprg3 = 0000000000000005
    [ 3003.329408] cr = 48004482  xer = 2000000000000000  dsisr = 42000000
    [ 3003.329409] dar = 0000010015020048
    [ 3003.329410] fault dar = 0000010015020048 dsisr = 42000000
    [ 3003.329411] SLB (8 entries):
    [ 3003.329412]   ESID = c000000008000000 VSID = 40016e7779000510
    [ 3003.329413]   ESID = d000000008000001 VSID = 400142add1000510
    [ 3003.329414]   ESID = f000000008000004 VSID = 4000eb1a81000510
    [ 3003.329415]   ESID = 00001f000800000b VSID = 40004fda0a000d90
    [ 3003.329416]   ESID = 00003f000800000c VSID = 400039f536000d90
    [ 3003.329417]   ESID = 000000001800000d VSID = 0001251b35150d90
    [ 3003.329417]   ESID = 000001000800000e VSID = 4001e46090000d90
    [ 3003.329418]   ESID = d000080008000019 VSID = 40013d349c000400
    [ 3003.329419] lpcr = c048800001847001 sdr1 = 0000001b19000006 last_inst = ffffffff
    [ 3003.329421] trap=0xe60 | pc=0xc0000000000c2ba0 | msr=0x8000000000009032
    [ 3003.329524] Severe Hypervisor Maintenance interrupt [Recovered]
    [ 3003.329526]  Error detail: Timer facility experienced an error
    [ 3003.329527] 	HMER: 0840000000000000
    [ 3003.329527] 	TFMR: 4a12000980a94000
    [ 3006.359786] Severe Hypervisor Maintenance interrupt [Recovered]
    [ 3006.359792]  Error detail: Timer facility experienced an error
    [ 3006.359795] 	HMER: 0840000000000000
    [ 3006.359797] 	TFMR: 4a12000980a84000
    
     Id    Name                           State
    ----------------------------------------------------
     2     guest2                         running
     3     guest3                         paused
     4     guest4                         running
    Signed-off-by: default avatarMahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    dee6f24c
book3s_hv.c 68.2 KB