[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v1] x86/hvm: Generic instruction re-execution mechanism for execute faults



On Wed, Nov 21, 2018 at 08:55:48PM +0200, Razvan Cojocaru wrote:
> On 11/16/18 7:04 PM, Roger Pau Monné wrote:
> >> +            if ( a == v )
> >> +                continue;
> >> +
> >> +            /* Pause, synced. */
> >> +            while ( !a->arch.in_host )
> > Why not use a->is_running as a way to know whether the vCPU is
> > running?
> > 
> > I think the logic of using vcpu_pause and expecting the running vcpu
> > to take a vmexit and thus set in_host is wrong because a vcpu that
> > wasn't running when vcpu_pause_nosync is called won't get scheduled
> > anymore, thus not taking a vmexit and this function will lockup.
> > 
> > I don't think you need the in_host boolean at all.
> > 
> >> +                cpu_relax();
> > Is this really better than using vcpu_pause?
> > 
> > I assume this is done to avoid waiting on each vcpu, and instead doing
> > it here likely means less wait time?
> 
> The problem with plain vcpu_pause() is that we weren't able to use it,
> for the same reason (which remains unclear as of yet) that we couldn't
> use a->is_running: we get CPU stuck hypervisor crashes that way. Here's
> one that uses the same logic, but loops on a->is_running instead of
> !a->arch.in_host:
>
> (XEN) [ 3663.19(XEN) [ 3667.995061] Watchdog timer detects that CPU0 is
> stuck!
> (XEN) [ 3668.000694] ----[ Xen-4.7.5  x86_64  debug=y  Not tainted ]----
> (XEN) [ 3668.007108] CPU:    0
> (XEN) [ 3668.009882] RIP:    e008:[<ffff82d0801327d2>]
> vcpu_sleep_sync+0x40/0x71
> (XEN) [ 3668.016989] RFLAGS: 0000000000000202   CONTEXT: hypervisor (d0v0)
> (XEN) [ 3668.023575] rax: 0000000000000001   rbx: ffff83007ccfc000
> rcx: ffff83007ccfc128
> (XEN) [ 3668.031548] rdx: 0000000000000000   rsi: 0000000000000246
> rdi: ffff830c52984148
> (XEN) [ 3668.039522] rbp: ffff83007cf2fcd8   rsp: ffff83007cf2fcc8   r8:
>  0000000000000003
> (XEN) [ 3668.047495] r9:  0000000000000000   r10: ffff82d080348460
> r11: 0000000000000000
> (XEN) [ 3668.055465] r12: ffff82d080132792   r13: ffff830b172b4000
> r14: ffff82c000225000
> (XEN) [ 3668.063439] r15: 00000000000f0000   cr0: 0000000080050033
> cr4: 00000000003526e0
> (XEN) [ 3668.071415] cr3: 0000000b4ba94000   cr2: 00007f6161714f70
> (XEN) [ 3668.077308] fsb: 00007f9164f088c0   gsb: ffff880276c00000
> gss: 0000000000000000
> (XEN) [ 3668.085280] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss:
> e010   cs: e008
> (XEN) [ 3668.092731] Xen code around <ffff82d0801327d2>
> (vcpu_sleep_sync+0x40/0x71):
> (XEN) [ 3668.100186]  01 00 00 00 74 24 f3 90 <8b> 11 48 8b 43 10 8b 80
> dc 01 00 00 09 d0 48 98
> (XEN) [ 3668.108593] Xen stack trace from rsp=ffff83007cf2fcc8:
> (XEN) [ 3668.114223]    0000000000000240 ffff83007ccfc000
> ffff83007cf2fd08 ffff82d08010735b
> (XEN) [ 3668.122282]    ffff82d0801358ad ffff830b172b4000
> 0000000000000240 0000000000000048
> (XEN) [ 3668.130346]    ffff83007cf2fd18 ffff82d08010879a
> ffff83007cf2fd88 ffff82d080245e69
> (XEN) [ 3668.138402]    ffff83007d615000 ffff830b172b4658
> ffff83007cf2fd48 00000000000f0000
> (XEN) [ 3668.146464]    00007f9164fb8004 0000000000000048
> ffff830c52974000 0000000000000006
> (XEN) [ 3668.154523]    ffffffffffffffff ffffffffffffffea
> 00007f9164fb1004 0000000000000000
> (XEN) [ 3668.162584]    ffff83007cf2fe48 ffff82d0801dd8f5
> ffff82d080374d58 ffff82d08024b308
> (XEN) [ 3668.170643]    ffff83007cf2fdc8 ffff83007cf2ffff
> ffff83007cf2fdc8 ffff830b172b4000
> (XEN) [ 3668.178704]    0000024000000001 00000000000f0000
> 00007f9164fb8004 fffffffffffffffc
> (XEN) [ 3668.186763]    0000000000000293 00007f91631f85d3
> ffff82d080250834 ffff82d080250828
> (XEN) [ 3668.194820]    ffff82d080250834 ffff82d080250828
> ffff82d080250834 ffff83007cf2fef8
> (XEN) [ 3668.202882]    0000000000000022 ffff82d0801dc037
> deadbeefdeadf00d ffffffff8100144a
> (XEN) [ 3668.210942]    ffff83007cf2fee8 ffff82d080172aca
> 02ff82d080250834 0000000000000006
> (XEN) [ 3668.219000]    00007f9164fb1004 deadbeefdeadf00d
> deadbeefdeadf00d deadbeefdeadf00d
> (XEN) [ 3668.227062]    ffff82d080250834 ffff82d080250828
> ffff82d080250834 ffff82d080250828
> (XEN) [ 3668.235121]    ffff82d080250834 ffff82d080250828
> ffff82d080250834 ffff83007d615000
> (XEN) [ 3668.243180]    0000000000000000 0000000000000000
> 0000000000000000 0000000000000000
> (XEN) [ 3668.251240]    00007cff830d00e7 ffff82d080250899
> 00007ffef6baf1d0 0000000000305000
> (XEN) [ 3668.259298]    ffff88022740b900 fffffffffffffff2
> ffff88022b31fe98 ffff88026f3374d8
> (XEN) [ 3668.267361]    0000000000000282 0000000000000000
> ffff88007c995080 0000000000000000
> (XEN) [ 3668.275417] Xen call trace:
> (XEN) [ 3668.278714]    [<ffff82d0801327d2>] vcpu_sleep_sync+0x40/0x71
> (XEN) [ 3668.284952]    [<ffff82d08010735b>]
> domain.c#do_domain_pause+0x33/0x4f
> (XEN) [ 3668.291973]    [<ffff82d08010879a>] domain_pause+0x25/0x27
> (XEN) [ 3668.297952]    [<ffff82d080245e69>]
> hap_track_dirty_vram+0x2c1/0x4a7
> (XEN) [ 3668.304797]    [<ffff82d0801dd8f5>] do_hvm_op+0x18be/0x2b58
> (XEN) [ 3668.310864]    [<ffff82d080172aca>] pv_hypercall+0x1e5/0x402
> (XEN) [ 3668.317017]    [<ffff82d080250899>] entry.o#test_all_events+0/0x3d
> (XEN) [ 3668.323689]
> (XEN) [ 3668.325685]
> (XEN) [ 3668.327678] ****************************************
> (XEN) [ 3668.333138] Panic on CPU 0:
> (XEN) [ 3668.336428] FATAL TRAP: vector = 2 (nmi)
> (XEN) [ 3668.340850] [error_code=0000]
> (XEN) [ 3668.344404] ****************************************
> (XEN) [ 3668.349863]
> (XEN) [ 3668.351854] Reboot in five seconds...
> (XEN) [ 3668.356017] Dumping other CPUs
> (XEN) [ 3668.359567] *** Dumping CPU1 host state: ***
> (XEN) [ 3668.364337] ----[ Xen-4.7.5  x86_64  debug=y  Not tainted ]----
> (XEN) [ 3668.370750] CPU:    1
> (XEN) [ 3668.373522] RIP:    e008:[<ffff82d08016b5a6>]
> domain.c#default_idle+0xa2/0xb5
> (XEN) [ 3668.381149] RFLAGS: 0000000000000202   CONTEXT: hypervisor
> (XEN) [ 3668.387128] rax: 0000000000000000   rbx: ffff830c529b7fff
> rcx: 0000000000000048
> (XEN) [ 3668.395101] rdx: 0000000000000000   rsi: ffff830c529b7fff
> rdi: ffff830c529b7ef8
> (XEN) [ 3668.403076] rbp: ffff830c529b7ed0   rsp: ffff830c529b7ed0   r8:
>  ffff830c529fe4a8
> (XEN) [ 3668.411048] r9:  ffff830c529bac20   r10: ffff830c529fe490
> r11: ffff830c529ba148
> (XEN) [ 3668.419019] r12: ffff830c529ba140   r13: ffff83007cf75000
> r14: 000003540fd7cd6b
> (XEN) [ 3668.426994] r15: ffffffffffffffff   cr0: 000000008005003b
> cr4: 00000000003526e0
> (XEN) [ 3668.434964] cr3: 000000007cf1d000   cr2: 0000000000000000
> (XEN) [ 3668.440861] fsb: 0000000000000000   gsb: 0000000000000000
> gss: 0000000000000000
> (XEN) [ 3668.448832] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss:
> 0000   cs: e008
> (XEN) [ 3668.456285] Xen code around <ffff82d08016b5a6>
> (domain.c#default_idle+0xa2/0xb5):
> (XEN) [ 3668.464260]  00 00 00 0f 30 90 fb f4 <0f> b6 46 f5 80 a7 fd 00
> 00 00 fe 0f 30 90 eb 01
> (XEN) [ 3668.472663] Xen stack trace from rsp=ffff830c529b7ed0:
> (XEN) [ 3668.478297]    ffff830c529b7ef0 ffff82d08016b628
> ffff82d080134ffe ffff83007cf75000
> (XEN) [ 3668.486358]    ffff830c529b7df0 0000000000000000
> 0000000000000000 0000000000000000
> (XEN) [ 3668.494417]    0000000000000000 00000000001c3a38
> 0000000000000000 0000000000000000
> (XEN) [ 3668.502478]    0000000000000000 0000000000000000
> 0000000000000000 0000000000000000
> (XEN) [ 3668.510538]    00000000000002ff 00000000001c00e9
> 0000000000000000 0000000000000000
> (XEN) [ 3668.518595]    0000beef0000beef 0000000000103f15
> 000000bf0000beef 0000000000000046
> (XEN) [ 3668.526656]    00000000001c3a38 000000000000beef
> ffffea000d5bbeef ffffea000d5bbeef
> (XEN) [ 3668.534715]    000000000000beef 000000000000beef
> 017fffc000000001 ffff83007cf75000
> (XEN) [ 3668.542775]    0000003bd2646380 00000000003526e0
> 0000000000000000 0000000c5299e000
> (XEN) [ 3668.550837]    0000070100000000 0000000000000000
> (XEN) [ 3668.555948] Xen call trace:
> (XEN) [ 3668.559242]    [<ffff82d08016b5a6>] domain.c#default_idle+0xa2/0xb5
> (XEN) [ 3668.566000]    [<ffff82d08016b628>] domain.c#idle_loop+0x57/0x6e
> (XEN) [ 3668.572502]
> (XEN) [ 3668.574494] *** Dumping CPU2 host state: ***
> (XEN) [ 3668.579261] ----[ Xen-4.7.5  x86_64  debug=y  Not tainted ]----
> (XEN) [ 3668.585675] CPU:    2
> (XEN) [ 3668.588449] RIP:    e008:[<ffff82d080127880>]
> queue_read_lock_slowpath+0x27/0x4d
> (XEN) [ 3668.596332] RFLAGS: 0000000000000286   CONTEXT: hypervisor (d1v1)
> (XEN) [ 3668.602919] rax: 00000000000000ff   rbx: ffff830b1b2b6980
> rcx: 0000000000000000
> (XEN) [ 3668.610893] rdx: ffff830c52997fff   rsi: 0000000000000009
> rdi: ffff830b1b2b698a
> (XEN) [ 3668.618865] rbp: ffff830c52997a68   rsp: ffff830c52997a58   r8:
>  0000000000000000
> (XEN) [ 3668.626837] r9:  0000000000000003   r10: 0000000000000000
> r11: 0000000000000000
> (XEN) [ 3668.634812] r12: ffff830b1b2b6984   r13: ffff830c52997aa4
> r14: ffff830c52997c34
> (XEN) [ 3668.642786] r15: 00000000000001aa   cr0: 0000000080050033
> cr4: 00000000003526e0
> (XEN) [ 3668.650759] cr3: 0000000b105ef000   cr2: 00000190068c3000
> (XEN) [ 3668.656650] fsb: 0000000000000000   gsb: 0000000000000000
> gss: 0000004f58bd3000
> (XEN) [ 3668.664624] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss:
> 0000   cs: e008
> (XEN) [ 3668.672077] Xen code around <ffff82d080127880>
> (queue_read_lock_slowpath+0x27/0x4d):
> (XEN) [ 3668.680309]  84 c0 74 08 f3 90 8b 03 <84> c0 75 f8 b8 00 01 00
> 00 f0 0f c1 03 3c ff 75
> (XEN) [ 3668.688717] Xen stack trace from rsp=ffff830c52997a58:
> (XEN) [ 3668.694351]    ffff830b1b2b6980 ffff830c52997b54
> ffff830c52997ad8 ffff82d08020c1df
> (XEN) [ 3668.702411]    ffff830c52997b08 ffff82d080217db4
> ffff830b172b4000 0000000352997c44
> (XEN) [ 3668.710468]    000000000db12f43 0000000000000000
> ffff830c00000000 00000000000001aa
> (XEN) [ 3668.718529]    ffff830b1b2b6980 fffff801a1e18d03
> ffff830c52997c34 ffff830078ba7000
> (XEN) [ 3668.726591]    ffff830c52997b88 ffff82d080247208
> ffff830b1b2b6980 ffff830c52997c44
> (XEN) [ 3668.734648]    0000000000000000 fffff801a1e18d03
> ffff830c52997b68 ffff82d08020bf20
> (XEN) [ 3668.742707]    0000000000000000 0000000208a008e3
> ffff830c52997b58 0000000400000000
> (XEN) [ 3668.750768]    0000000000008000 0000000000000000
> ffff830c52997be0 0000000000000000
> (XEN) [ 3668.758826]    0000000000000000 ffff830078ba7000
> ffff830c52997c34 fffff801a1e18d03
> (XEN) [ 3668.766888]    ffff830b1b2b6980 ffff82d080311520
> ffff830c52997b98 ffff82d080247475
> (XEN) [ 3668.774945]    ffff830c52997be8 ffff82d080212751
> 0000000000008000 ffffef07c38b76b0
> (XEN) [ 3668.783006]    0000000000000010 fffff801a1e18d03
> fffff801a1e18d03 0000000000000d03
> (XEN) [ 3668.791067]    000fffff801a1e18 ffff830c52997ef8
> ffff830c52997c78 ffff82d0801d66a0
> (XEN) [ 3668.799128]    ffffef07c38b7708 ffff830c52997c44
> ffff830c52997c34 0000000000000004
> (XEN) [ 3668.807188]    ffff830c52997d38 0000001000000004
> ffff830078ba7000 0000001100000010
> (XEN) [ 3668.815244]    ffffea000d59beef ffffea000d59beef
> 000000000000beef ffff830c52997d10
> (XEN) [ 3668.823304]    ffff830078ba7000 0000000000000001
> 0000000000000000 ffff830c52997ef8
> (XEN) [ 3668.831363]    ffff830c52997c88 ffff82d0801d844d
> ffff830c52997ce8 ffff82d0801d13da
> (XEN) [ 3668.839423]    ffff830c52997d38 ffff82d0803107e0
> 0000000000000000 fffff801a1e18d03
> (XEN) [ 3668.847484]    ffff830c52997cd8 ffff830078ba7000
> ffff830c52997d10 000000000000002c
> (XEN) [ 3668.855544] Xen call trace:
> (XEN) [ 3668.858838]    [<ffff82d080127880>]
> queue_read_lock_slowpath+0x27/0x4d
> (XEN) [ 3668.865857]    [<ffff82d08020c1df>]
> get_page_from_gfn_p2m+0x14e/0x3b0
> (XEN) [ 3668.872792]    [<ffff82d080247208>]
> hap_p2m_ga_to_gfn_4_levels+0x48/0x299
> (XEN) [ 3668.880071]    [<ffff82d080247475>]
> hap_gva_to_gfn_4_levels+0x1c/0x1e
> (XEN) [ 3668.887004]    [<ffff82d080212751>] paging_gva_to_gfn+0x10e/0x11d
> (XEN) [ 3668.893590]    [<ffff82d0801d66a0>] hvm.c#__hvm_copy+0x98/0x37f
> (XEN) [ 3668.900003]    [<ffff82d0801d844d>]
> hvm_fetch_from_guest_virt_nofault+0x14/0x16
> (XEN) [ 3668.907801]    [<ffff82d0801d13da>]
> emulate.c#_hvm_emulate_one+0x118/0x2bc
> (XEN) [ 3668.915168]    [<ffff82d0801d1674>] hvm_emulate_one+0x10/0x12
> (XEN) [ 3668.921409]    [<ffff82d0801e08c2>] handle_mmio+0x52/0xc9
> (XEN) [ 3668.927303]    [<ffff82d0802034a2>]
> vmx_vmexit_handler+0x1e0e/0x1e45
> (XEN) [ 3668.934149]    [<ffff82d08020820c>]
> vmx_asm_vmexit_handler+0xec/0x250
> (XEN) [ 3668.941079]
> (XEN) [ 3668.943072] *** Dumping CPU2 guest state (d1v1): ***
> (XEN) [ 3668.948533] ----[ Xen-4.7.5  x86_64  debug=y  Not tainted ]----
> (XEN) [ 3668.954948] CPU:    2
> (XEN) [ 3668.957719] RIP:    0010:[<fffff801a1e18d03>]
> (XEN) [ 3668.962572] RFLAGS: 0000000000010046   CONTEXT: hvm guest (d1v1)
> (XEN) [ 3668.969075] rax: fffff78880009000   rbx: 000000000004002f
> rcx: fffff801a1e19300
> (XEN) [ 3668.977045] rdx: ffffef07c38b76b8   rsi: ffffef07c38b7708
> rdi: 0000000000000000
> (XEN) [ 3668.985018] rbp: ffffef07c38b76b0   rsp: ffffef07c38b75f0   r8:
>  ffffef07c38b7708
> (XEN) [ 3668.992991] r9:  000000000000002f   r10: 0000000000000001
> r11: 0000000000000001
> (XEN) [ 3669.000966] r12: 0000000000000001   r13: 0000000000000000
> r14: 0000000000000001
> (XEN) [ 3669.008938] r15: 000000000000002f   cr0: 0000000080050031
> cr4: 0000000000170678
> (XEN) [ 3669.016913] cr3: 00000000001aa002   cr2: 00000190068c3000
> (XEN) [ 3669.022806] fsb: 0000000000000000   gsb: ffffc9814c820000
> gss: 0000000473bfe000
> (XEN) [ 3669.030776] ds: 002b   es: 002b   fs: 0053   gs: 002b   ss:
> 0000   cs: 0010
> (XEN) [ 3669.038229]
> (XEN) [ 3669.040223] *** Dumping CPU3 host state: ***
> (XEN) [ 3669.044988] ----[ Xen-4.7.5  x86_64  debug=y  Not tainted ]----
> (XEN) [ 3669.051403] CPU:    3
> (XEN) [ 3669.054177] RIP:    e008:[<ffff82d08021006a>]
> vmx_start_reexecute_instruction+0x107/0x68a
> (XEN) [ 3669.062841] RFLAGS: 0000000000000202   CONTEXT: hypervisor (d1v0)
> (XEN) [ 3669.069431] rax: ffff830078ba7000   rbx: ffff83007ccfc000
> rcx: 0000000000000002
> (XEN) [ 3669.077404] rdx: ffff830c5297ffff   rsi: 0000000000000246
> rdi: ffff830c52998148
> (XEN) [ 3669.085377] rbp: ffff830c5297fd18   rsp: ffff830c5297fcb8   r8:
>  0000000000000002
> (XEN) [ 3669.093349] r9:  0000000000000006   r10: 000000000003d976
> r11: 0000000000000006
> (XEN) [ 3669.101320] r12: 0000000000000000   r13: ffff82d08028a3e4
> r14: 0000000000000000
> (XEN) [ 3669.109296] r15: 0000000113f007f8   cr0: 0000000080050033
> cr4: 00000000003526e0
> (XEN) [ 3669.117269] cr3: 0000000b10380000   cr2: 0000000000000000
> (XEN) [ 3669.123163] fsb: 0000000000000000   gsb: 0000000000000000
> gss: fffff801a129e000
> (XEN) [ 3669.131132] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss:
> 0000   cs: e008
> (XEN) [ 3669.138586] Xen code around <ffff82d08021006a>
> (vmx_start_reexecute_instruction+0x107/0x68a):
> (XEN) [ 3669.147598]  90 80 b8 0b 01 00 00 00 <75> f5 48 8b 40 18 48 85
> c0 75 de e9 19 05 00 00
> (XEN) [ 3669.156005] Xen stack trace from rsp=ffff830c5297fcb8:
> (XEN) [ 3669.161640]    ffff830b17342800 0000000300000009
> 0000000000000100 ffff830b17342000
> (XEN) [ 3669.169697]    ffff830c00000000 ffff830b1b2b6980
> ffff830b172b4000 ffff830b1b2b6980
> (XEN) [ 3669.177761]    000000001b2b6801 0000000000000002
> ffff83007ccfc000 000000000000003b
> (XEN) [ 3669.185818]    ffff830c5297fda8 ffff82d080210b3e
> 0000000000113f00 0000000000000000
> (XEN) [ 3669.193877]    00007ff91cd34d60 0000000113f007f8
> 0000000000000000 ffff830c5297fdf0
> (XEN) [ 3669.201937]    0000000000113f00 0000000000000000
> ffff83007ccfc000 0000000000000005
> (XEN) [ 3669.209997]    ffff83007ccfc000 ffff830b172b4000
> ffff83007ccfc000 ffff83007ccfc000
> (XEN) [ 3669.218056]    0000000000113f00 0000000000000000
> ffff830c5297fe38 ffff82d0801dee9e
> (XEN) [ 3669.226116]    0000000000913f00 0000000000000000
> 00007ff91cd34d60 ffff830b1b2b6980
> (XEN) [ 3669.234177]    0000003b5297fe38 0000000113f007f8
> 0000000000000296 0000000000000000
> (XEN) [ 3669.242236]    ffff830b1b2b6980 0000000000000005
> ffff82d0802081d1 ffff830c5297fef8
> (XEN) [ 3669.250295]    ffff83007ccfc000 00000000000006ab
> 000000000000001b 0000000113f007f8
> (XEN) [ 3669.258354]    ffff830c5297fee8 ffff82d080202c00
> ffff82d0802081d1 0000000000000080
> (XEN) [ 3669.266417]    0000000000000000 0000000000000002
> ffff830b172b4000 0000000000113f00
> (XEN) [ 3669.274474]    00007ff91cd34d60 000000000000003b
> ffff82d0802081d1 ffff82d0802081c5
> (XEN) [ 3669.282537]    ffff82d0802081d1 ffff82d0802081c5
> ffff82d0802081d1 ffff82d0802081c5
> (XEN) [ 3669.290596]    ffff82d0802081d1 ffff83007ccfc000
> 0000000000000000 0000000000000000
> (XEN) [ 3669.298655]    0000000000000000 0000000000000000
> 00007cf3ad6800e7 ffff82d08020820c
> (XEN) [ 3669.306712]    00007ff91cd34d60 0000019285c42a50
> 00000192858a8eb0 0000000000000000
> (XEN) [ 3669.314772]    0000019285894438 41c64e6da3bd2845
> 0000104000000000 00000fff239a69ac
> (XEN) [ 3669.322832] Xen call trace:
> (XEN) [ 3669.326128]    [<ffff82d08021006a>]
> vmx_start_reexecute_instruction+0x107/0x68a
> (XEN) [ 3669.333925]    [<ffff82d080210b3e>]
> p2m_mem_access_check+0x551/0x64d
> (XEN) [ 3669.340774]    [<ffff82d0801dee9e>]
> hvm_hap_nested_page_fault+0x2f2/0x631
> (XEN) [ 3669.348051]    [<ffff82d080202c00>]
> vmx_vmexit_handler+0x156c/0x1e45
> (XEN) [ 3669.354899]    [<ffff82d08020820c>]
> vmx_asm_vmexit_handler+0xec/0x250
> (XEN) [ 3669.361832]
> (XEN) [ 3669.363827] *** Dumping CPU3 guest state (d1v0): ***
> (XEN) [ 3669.369285] ----[ Xen-4.7.5  x86_64  debug=y  Not tainted ]----
> (XEN) [ 3669.375700] CPU:    3
> (XEN) [ 3669.378471] RIP:    0033:[<00007ff91cd34d60>]
> (XEN) [ 3669.383323] RFLAGS: 0000000000010247   CONTEXT: hvm guest (d1v0)
> (XEN) [ 3669.389824] rax: 00007ff91cd34d60   rbx: 41c64e6da3bd2845
> rcx: 41c64e6da3bd2845
> (XEN) [ 3669.397799] rdx: 0000000000000077   rsi: 0000000000000001
> rdi: 0000019285877150
> (XEN) [ 3669.405768] rbp: 0000019285894438   rsp: 0000008d6aa7f608   r8:
>  0000000000000000
> (XEN) [ 3669.413743] r9:  00000192858a8eb0   r10: 00000fff239a69ac
> r11: 0000104000000000
> (XEN) [ 3669.421716] r12: 0000000000000000   r13: 00000192858a8eb0
> r14: 0000019285c42a50
> (XEN) [ 3669.429690] r15: 00007ff91cd34d60   cr0: 0000000080050031
> cr4: 0000000000170678
> (XEN) [ 3669.437662] cr3: 0000000113f00002   cr2: 0000000000000000
> (XEN) [ 3669.443555] fsb: 0000000000000000   gsb: 0000008d6a7cf000
> gss: 0000002562d20000
> (XEN) [ 3669.451529] ds: 002b   es: 002b   fs: 0053   gs: 002b   ss:
> 002b   cs: 0033
> (XEN) [ 3669.458980]
> (XEN) [ 3669.463584] APIC error on CPU0: 40(00)
> 
> Some scheduler magic appears to happen here where it is unclear why
> is_running doesn't seem to end up being 0 as expected in our case. We'll
> keep digging.

There seems to be some kind of deadlock between
vmx_start_reexecute_instruction and hap_track_dirty_vram/handle_mmio.
Are you holding a lock while trying to put the other vcpus to sleep?

Roger.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.