Sure. The patch is attached.
In addition, it removes noisy messages.
I don't think these messages are helpful.
Thanks,
Kouya
Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
George Dunlap writes:
> You're right, that should be >=. Can you make a patch, see if it
> fixes your problem, and if so send it to the list?
>
> Thanks,
> -George
>
> On Fri, Dec 11, 2009 at 2:12 AM, Kouya Shimura <kouya@xxxxxxxxxxxxxx> wrote:
> > Hi George,
> >
> > Executing "xm mem-set" command twice for a guest causes
> > the assertion failure.
> >
> > (XEN) p2m_pod_set_cache_target: Unable to allocate domheap page for pod
> > cache. target 48183 cachesize 48050
> > (XEN) memory.c:128:d2 Could not allocate order=0 extent: id=2 memflags=0
> > (321 of 512)
> > (XEN) memory.c:128:d2 Could not allocate order=0 extent: id=2 memflags=0
> > (188 of 321)
> > (XEN) Assertion 'pod_target > p2md->pod.count' failed at p2m.c:526
> > (XEN) ----[ Xen-3.5-unstable x86_64 debug=y Tainted: C ]----
> > (XEN) CPU: 1
> > (XEN) RIP: e008:[<ffff82c4801bd7d4>] p2m_pod_set_mem_target+0x42/0x61
> > (XEN) RFLAGS: 0000000000010246 CONTEXT: hypervisor
> > (XEN) rax: 000000000000bc37 rbx: 0000000000000010 rcx: 000000000000bc37
> > (XEN) rdx: 000000000000bc37 rsi: 000000000001bab9 rdi: ffff830127cf2000
> > (XEN) rbp: ffff8301391efc68 rsp: ffff8301391efc68 r8: 000000000002017e
> > (XEN) r9: 00000000deadbeef r10: ffff82c4802032d0 r11: 0000000000000282
> > (XEN) r12: 0000000046007bc0 r13: 00000000ffffffea r14: 00000000ffffffda
> > (XEN) r15: 0000000046007bc0 cr0: 0000000080050033 cr4: 00000000000026f0
> > (XEN) cr3: 0000000129a43000 cr2: 0000000000a4e008
> > (XEN) ds: 0000 es: 0000 fs: 0063 gs: 0000 ss: e010 cs: e008
> > (XEN) Xen stack trace from rsp=ffff8301391efc68:
> > (XEN) ffff8301391efcf8 ffff82c48015f095 ffff8301391efc88 ffff82c480134e07
> > (XEN) 0000000000030000 0000000000000000 0000000000000000 0000000000000000
> > (XEN) 0000000000000002 ffff82f602534860 ffff830127cf2000 ffff8300bf48a000
> > (XEN) ffff82c480264080 ffff8300bf48a000 0000000000000010 0000000046007bc0
> > (XEN) 00000000ffffffda 0000000046007bc0
> > ffff8301391eff08<G><2>memory.c:128:d2 Could not allocate order=0 extent:
> > id=2 memflags=0 (0 of 512)
> > (XEN) ffff82c480113b33
> > (XEN) 0000000000000002 00000059ef675add ffff8300bf326000 ffff82c480262080
> > (XEN) ffff8301391efd38 ffff82c48016b41e ffff8301391efd48 ffff82c48016b4ed
> > (XEN) ffff8301391efd68 ffff82c48011dc44 ffff8301391efda8 0000000000000001
> > (XEN) ffff8301391efd88 ffff82c48011887e 0000000000000001 00000059ef675add
> > (XEN) ffff8301391efdd8 0000000000000282 0000000000000001 ffff8301391efe50
> > (XEN) ffff8301391efdf8 0000000000000000 ffff8300bf326000 0000000000000000
> > (XEN) 0000000000000001 ffff880001976560 ffff8301391efde8 ffff82c48011d181
> > (XEN) ffff8301391efe08 ffff82c480149f07 ffff8301391be000 0000000000000004
> > (XEN) ffff8301391efe18 ffff82c480149f86 ffff8301391efe48 ffff82c48010764c
> > (XEN) 0000000000000286 ffff8301391be000 0000000000000004 0000000000000000
> > (XEN) ffff8301391efe68 ffff82c480107a26 ffffffffffffffda ffff8800bcc21c18
> > (XEN) ffff8301391efe78 ffff82c48015b7f2 ffff8301391eff28 ffff8300bf48a000
> > (XEN) 0000000046007bc0 0000000000000009 ffff8301391eff08 ffff82c4801f1533
> > (XEN) 0000000000000000 0000000000000206 ffffffff810094d4 0000000000000100
> > (XEN) 00000039d18cebd7 000000000000e033 ffff8301391efee8 ffff8300bf48a000
> > (XEN) Xen call trace:
> > (XEN) [<ffff82c4801bd7d4>] p2m_pod_set_mem_target+0x42/0x61
> > (XEN) [<ffff82c48015f095>] arch_memory_op+0xc69/0xd34
> > (XEN) [<ffff82c480113b33>] do_memory_op+0x1944/0x19a1
> > (XEN) [<ffff82c4801ee1bf>] syscall_enter+0xef/0x149
> > (XEN)
> > (XEN)
> > (XEN) ****************************************
> > (XEN) Panic on CPU 1:
> > (XEN) Assertion 'pod_target > p2md->pod.count' failed at p2m.c:526
> > (XEN) ****************************************
> > (XEN)
> > (XEN) Reboot in five seconds...
> >
> > I'm not sure but this assertion should be
> > ASSERT(pod_target >= p2md->pod.count) ?
> > Since pod.entry_count == pod.count at that time.
> >
> > Thanks,
> > Kouya
> >
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@xxxxxxxxxxxxxxxxxxx
> > http://lists.xensource.com/xen-devel
> >
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
diff -r b928797213ac xen/arch/x86/mm/p2m.c
--- a/xen/arch/x86/mm/p2m.c Fri Dec 11 09:17:09 2009 +0000
+++ b/xen/arch/x86/mm/p2m.c Mon Dec 14 14:55:00 2009 +0900
@@ -338,7 +338,6 @@ static struct page_info * p2m_pod_cache_
/* Break up a superpage to make single pages. NB count doesn't
* need to be adjusted. */
- printk("%s: Breaking up superpage.\n", __func__);
p = page_list_remove_head(&p2md->pod.super);
mfn = mfn_x(page_to_mfn(p));
@@ -529,7 +528,7 @@ p2m_pod_set_mem_target(struct domain *d,
if ( pod_target > p2md->pod.entry_count )
pod_target = p2md->pod.entry_count;
- ASSERT( pod_target > p2md->pod.count );
+ ASSERT( pod_target >= p2md->pod.count );
ret = p2m_pod_set_cache_target(d, pod_target);
@@ -695,7 +694,6 @@ out_entry_check:
/* If we've reduced our "liabilities" beyond our "assets", free some */
if ( p2md->pod.entry_count < p2md->pod.count )
{
- printk("b %d\n", p2md->pod.entry_count);
p2m_pod_set_cache_target(d, p2md->pod.entry_count);
}
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|