My DomUs on a Xen 3.4 on an RHEL5 are crashing when too much memory is needed:
(XEN) p2m_pod_demand_populate: Out of populate-on-demand memory!
(XEN) domain_crash called from p2m.c:1091
(XEN) Domain 15 (vcpu#3) crashed on cpu#2:
(XEN) ----[ Xen-3.4.0 x86_64 debug=n Not tainted ]----
(XEN) CPU: 2
(XEN) RIP: 0010:[<ffffffff80062c02>]
(XEN) RFLAGS: 0000000000010216 CONTEXT: hvm guest
(XEN) rax: 0000000000000000 rbx: 0000000000000001 rcx: 000000000000003f
(XEN) rdx: 0000000004812000 rsi: ffff810001000000 rdi: ffff810004812000
(XEN) rbp: 0000000000000282 rsp: ffff810007635cf0 r8: ffff810037c0288e
(XEN) r9: 00000000000023e1 r10: 0000000000000000 r11: 0000000000000001
(XEN) r12: ffff81000000cb00 r13: ffff8100007e43f0 r14: ffff81000000fc10
(XEN) r15: 00000000000280d2 cr0: 0000000080050033 cr4: 00000000000006e0
(XEN) cr3: 0000000006760000 cr2: 0000000003d47078
(XEN) ds: 0000 es: 0000 fs: 0000 gs: 0000 ss: 0000 cs: 0010
Can I disable populate-on-demand for HVM somehow? Xen 3.3 didn't exhibit such behaviour...
There's some good detail here:
http://lists.xensource.com/archives/html/xen-devel/2008-12/msg01030.html
Which seems to indicate this only happens when you overcommit. Of course if your domU's are linux you really should consider running in paravirt mode for the performance benefits.
Easy way:
in your config make maxmem=memory, which disables the PoD driver.
Otherwise you will need to install a balloon driver in the guest OS.