Could you try the attached patch? On Fri, Feb 13, 2009 at 05:03:07PM +0800, Zhang, Jingke wrote: > Hi all, > With latest Cset#19203, dom0 will crash when destroying VTI, either by > "xm des ..." or "run poweroff in VTI". It blocks this round of ABAT testing. > > Serial log info is in below: > ================= > (XEN) Assertion 'entry->prev->next == entry' failed, line 170, file > /home/build/nightly/builds_xen_ia64_unstable/xen-3.3-hg-xen_ia64_unstable-19203-20090213/xen/include/xen/list.h > (XEN) Xen BUG at > /home/build/nightly/builds_xen_ia64_unstable/xen-3.3-hg-xen_ia64_unstable-19203-20090213/xen/include/xen/list.h:170 > (XEN) FIXME: implement ia64 dump_execution_state() > (XEN) > (XEN) Call Trace: > (XEN) [<f4000000040fbbf0>] show_stack+0x90/0xb0 > (XEN) sp=f0000002fcd8fbf0 bsp=f0000002fcd89708 > (XEN) [<f4000000040fc700>] dump_stack+0x30/0x50 > (XEN) sp=f0000002fcd8fdc0 bsp=f0000002fcd896e8 > (XEN) [<f400000004060d10>] __bug+0x70/0xa0 > (XEN) sp=f0000002fcd8fdc0 bsp=f0000002fcd896b8 > (XEN) [<f400000004031050>] free_domheap_pages+0x380/0x700 > (XEN) sp=f0000002fcd8fdc0 bsp=f0000002fcd89658 > (XEN) [<f4000000040a7e30>] domain_page_flush_and_put+0x1c0/0x500 > (XEN) sp=f0000002fcd8fdc0 bsp=f0000002fcd89610 > (XEN) [<f4000000040a8300>] domain_put_page+0x190/0x530 > (XEN) sp=f0000002fcd8fdd0 bsp=f0000002fcd895a0 > (XEN) [<f4000000040a8980>] zap_domain_page_one+0x2e0/0x4e0 > (XEN) sp=f0000002fcd8fde0 bsp=f0000002fcd89500 > (XEN) [<f4000000040a8e40>] dom0vp_zap_physmap+0x70/0x90 > (XEN) sp=f0000002fcd8fdf0 bsp=f0000002fcd894c8 > (XEN) [<f40000000407f990>] do_dom0vp_op+0x2a0/0x730 > (XEN) sp=f0000002fcd8fdf0 bsp=f0000002fcd89480 > (XEN) [<f400000004002e30>] fast_hypercall+0x170/0x340 > (XEN) sp=f0000002fcd8fe00 bsp=f0000002fcd89480 > (XEN) > (XEN) **************************************** > (XEN) Panic on CPU 2: > (XEN) Xen BUG at > /home/build/nightly/builds_xen_ia64_unstable/xen-3.3-hg-xen_ia64_unstable-19203-20090213/xen/include/xen/list.h:170 > (XEN) **************************************** > (XEN) > (XEN) Reboot in five seconds... > > > Thanks, > Zhang Jingke > > _______________________________________________ > Xen-ia64-devel mailing list > Xen-ia64-devel@lists.xensource.com > http://lists.xensource.com/xen-ia64-devel >
-- yamahata
[IA64] fix relinquish_memory() This patch fixes the following panic. (XEN) Assertion 'entry->prev->next == entry' failed, line 170, file xen-unstable.hg/xen/include/xen/list.h (XEN) Xen BUG at xen-unstable.hg/xen/include/xen/list.h:170 (XEN) FIXME: implement ia64 dump_execution_state() (XEN) (XEN) Call Trace: (XEN) [<f400000004104670>] show_stack+0x90/0xb0 (XEN) sp=f0000002f64cfbf0 bsp=f0000002f64c9918 (XEN) [<f400000004105180>] dump_stack+0x30/0x50 (XEN) sp=f0000002f64cfdc0 bsp=f0000002f64c98f8 (XEN) [<f400000004064ac0>] __bug+0x70/0xa0 (XEN) sp=f0000002f64cfdc0 bsp=f0000002f64c98c8 (XEN) [<f400000004031290>] free_domheap_pages+0x380/0x700 (XEN) sp=f0000002f64cfdc0 bsp=f0000002f64c9868 (XEN) [<f4000000040ac470>] domain_page_flush_and_put+0x1c0/0x550 (XEN) sp=f0000002f64cfdc0 bsp=f0000002f64c9820 (XEN) [<f4000000040ac990>] domain_put_page+0x190/0x530 (XEN) sp=f0000002f64cfdd0 bsp=f0000002f64c97b0 (XEN) [<f4000000040ad060>] zap_domain_page_one+0x330/0x530 (XEN) sp=f0000002f64cfde0 bsp=f0000002f64c9710 (XEN) [<f4000000040ad570>] dom0vp_zap_physmap+0x70/0xe0 (XEN) sp=f0000002f64cfdf0 bsp=f0000002f64c96d8 (XEN) [<f4000000040838f0>] do_dom0vp_op+0x320/0x7b0 (XEN) sp=f0000002f64cfdf0 bsp=f0000002f64c9690 (XEN) [<f400000004002e60>] fast_hypercall+0x170/0x310 (XEN) sp=f0000002f64cfe00 bsp=f0000002f64c9690 (XEN) (XEN) **************************************** (XEN) Panic on CPU 2: (XEN) Xen BUG at xen-unstable.hg/xen/include/xen/list.h:170 (XEN) **************************************** (XEN) (XEN) Reboot in five seconds... (XEN) Debugging connection not set up. Signed-off-by: Isaku Yamahata <yamah...@valinux.co.jp> diff --git a/xen/arch/ia64/xen/domain.c b/xen/arch/ia64/xen/domain.c --- a/xen/arch/ia64/xen/domain.c +++ b/xen/arch/ia64/xen/domain.c @@ -1705,13 +1705,7 @@ static int relinquish_memory(struct doma } } - /* list is empty at this point. */ - if ( !page_list_empty(&d->arch.relmem_list) ) - { - *list = d->arch.relmem_list; - INIT_PAGE_LIST_HEAD(&d->arch.relmem_list); - } - + page_list_splice_init(&d->arch.relmem_list, list); out: spin_unlock_recursive(&d->page_alloc_lock); diff --git a/xen/include/asm-ia64/mm.h b/xen/include/asm-ia64/mm.h --- a/xen/include/asm-ia64/mm.h +++ b/xen/include/asm-ia64/mm.h @@ -92,6 +92,24 @@ struct page_info u32 tlbflush_timestamp; }; +#ifndef page_list_entry +static inline void +page_list_splice_init(struct page_list_head *list, struct page_list_head *head) +{ + if ( !page_list_empty(list) ) + { + if ( head->next ) + head->tail->list.next = page_to_mfn(list->next); + else + head->next = list->next; + head->tail = list->tail; + INIT_PAGE_LIST_HEAD(list); + } +} +#else +# define page_list_splice_init list_splice_init +#endif + #define set_page_count(p,v) atomic_set(&(p)->_count, v - 1) /*
_______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@lists.xensource.com http://lists.xensource.com/xen-ia64-devel