On 03.11.14 05:51, Paul Mackerras wrote: > From: Mahesh Salgaonkar <mahesh@xxxxxxxxxxxxxxxxxx> > > 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: Mahesh Salgaonkar <mahesh@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx> Do we need this for PR running on bare metal as well? Alex -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html