From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH] PoD: appropriate BUG_ON when domain is dying Date: Wed, 9 Dec 2009 11:20:15 +0000 Message-ID: <4B1F87EF.1070503@eu.citrix.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: "xen-devel@lists.xensource.com" , Kouya Shimura List-Id: xen-devel@lists.xenproject.org Looks good to me. Acked-by: George Dunlap -George Keir Fraser wrote: > Need an Ack from George or Tim for this one. > > -- Keir > > On 09/12/2009 03:00, "Kouya Shimura" wrote: > > >> Hi, >> >> BUG_ON(d->is_dying) in p2m_pod_cache_add() which is introduced in >> c/s 20426 is not proper. Since dom->is_dying is set asynchronously. >> For example, MMU_UPDATE hypercalls from qemu and the >> DOMCTL_destroydomain hypercall from xend can be issued simultaneously. >> >> (XEN) p2m_pod_demand_populate: Out of populate-on-demand memory! tot_pages >> 65751 pod_entries 197408 >> (XEN) domain_crash called from p2m.c:1062 >> (XEN) Domain 1 reported crashed by domain 0 on cpu#0: >> (XEN) Xen BUG at p2m.c:306 >> (XEN) ----[ Xen-3.5-unstable x86_64 debug=y Tainted: C ]---- >> (XEN) CPU: 0 >> (XEN) RIP: e008:[] p2m_pod_cache_add+0x350/0x3b1 >> (XEN) RFLAGS: 0000000000010202 CONTEXT: hypervisor >> (XEN) rax: ffff830138c8ad30 rbx: ffff830138002018 rcx: ffff82f6001a8f00 >> (XEN) rdx: ffff830138c8ada0 rsi: ffff830138002020 rdi: ffff82f6001aab00 >> (XEN) rbp: ffff82c4802ef9b8 rsp: ffff82c4802ef968 r8: 000000000000d412 >> (XEN) r9: 0000000000000001 r10: ffff82f600000000 r11: 000000000000d478 >> (XEN) r12: 0000000000000001 r13: ffff830138002000 r14: 0000000000000001 >> (XEN) r15: 000000000000d478 cr0: 000000008005003b cr4: 00000000000026f0 >> (XEN) cr3: 000000011cec7000 cr2: ffff8800e41c7560 >> (XEN) ds: 0000 es: 0000 fs: 0000 gs: 0000 ss: e010 cs: e008 >> (XEN) Xen stack trace from rsp=ffff82c4802ef968: >> (XEN) ffff830138002000 0000000000000000 ffff82f6001a8f00 000000000000d478 >> (XEN) ffff830138c8ad30 000000000000000e 000000000000000e ffff82c4802ef9d0 >> (XEN) ffff830138002000 ffff82c4802ef9d0 ffff82c4802efbb8 ffff82c4801be27e >> (XEN) 0000000000000002 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 ffff83000d478000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000100000001 >> (XEN) 0000000100000001 0000000100000001 0000000100000001 0000000100000001 >> (XEN) 0000000100000001 0000000100000001 0000000100000001 ffff830138002e20 >> (XEN) ffff830138002000 000000000000d5f4 0000000000125f18 0000000000125f19 >> (XEN) 0000000000125f1a 0000000000125f1b 0000000000125f1c 0000000000125f1d >> (XEN) 0000000000125f1e 000000000011d72b 0000000000125f1f 0000000000125f20 >> (XEN) 000000000000d4ec 0000000000125f21 000000000000d341 000000000000d478 >> (XEN) 0000000000126960 ffff830138921000 0000000000138921 0000001038002000 >> (XEN) ffff82c4802efc28 ffff82c4802efab0 ffff82c4802efa60 ffff82c4802efa60 >> (XEN) ffff82c4802ef9d0 ffff82c4802efa60 00000002802efbb8 ffff82c4802eff28 >> (XEN) ffff82c4802efab0 00000000000317ed 0000000000000010 ffff830138c8ad30 >> (XEN) 000000000003a26d ffff830138002000 ffff82c4802efce8 ffff82c4801be8c9 >> (XEN) ffff82c4802efbd8 ffff82c4802efc28 ffff82c4802efcb4 ffff82c48011d8c4 >> (XEN) Xen call trace: >> (XEN) [] p2m_pod_cache_add+0x350/0x3b1 >> (XEN) [] p2m_pod_zero_check+0x3a5/0x3d8 >> (XEN) [] p2m_pod_demand_populate+0x618/0x8d4 >> (XEN) [] p2m_pod_check_and_populate+0x17f/0x1fa >> (XEN) [] p2m_gfn_to_mfn+0x34b/0x3f4 >> (XEN) [] mod_l1_entry+0x1aa/0x7ee >> (XEN) [] do_mmu_update+0x56a/0x144b >> (XEN) [] syscall_enter+0xef/0x149 >> (XEN) >> (XEN) >> (XEN) **************************************** >> (XEN) Panic on CPU 0: >> (XEN) Xen BUG at p2m.c:306 >> (XEN) **************************************** >> >> Also this patch lets p2m_pod_empty_cache() wait by spin_barrier >> until another PoD operation ceases. >> >> Thanks, >> Kouya >> >> Signed-off-by: Kouya Shimura >> >> > > >