Port-xen archive

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

Re: Dom0 ballooning: crash on guest start



On 04/29/11 14:08, Christoph Egger wrote:
On 04/29/11 13:44, Jean-Yves Migeon wrote:
On Fri, 29 Apr 2011 11:49:33 +0200, Christoph Egger wrote:
On 04/29/11 11:49, Jean-Yves Migeon wrote:
On Fri, 29 Apr 2011 11:14:54 +0200, Christoph Egger wrote:
Then when I start a HVM guest the balloon driver crashes:

balloon0: current reservation: 2039476 pages => target: 2039476 pages
balloon0: current reservation: 2039476 pages => target: 981172 pages
uvm_fault(0xffffffff80c6b220, 0xffffffff81400000, 1) -> e
fatal page fault in supervisor mode
trap type 6 code 0 rip ffffffff8054584d cs e030 rflags 10216 cr2
ffffffff81400000 cpl 0 rsp ffffa00057ca8a50
kernel: page fault trap, code=0
Stopped in pid 0.58 (system) at netbsd:pmap_zero_page+0x41: movq
0(%rax,%
rbx,8),%rbx
pmap_zero_page() at netbsd:pmap_zero_page+0x41
uvm_pagealloc_strat() at netbsd:uvm_pagealloc_strat+0x22d
bpge_ctor() at netbsd:bpge_ctor+0x22

Hmm, a fault while zeroing the page. Race, TLB out of sync, or maybe
developer's (my) mistake :o

Is this kernel compiled with DIAGNOSTIC?

It is compiled with DEBUG + DIAGNOSTIC + LOCKDEBUG

Okay, I'll try reproducing the issue. In the meanwhile, could you
trigger the issue again with BALLOONDEBUG set to 1 (in xen/balloon.c),
and post the last dmesg output before the fault? I'd like to see if it
happens under high memory pressure or right from the start.

Thanks for testing!


Ok, I retried with BALLOONDEBUG set to 1.

When starting xenstored, xenconsoled and xenbackendd
the kernel prints:

balloon0 at xenbus0 id 0: Xen Balloon driver
balloon0: current reservation: 8157904 KiB
balloon0: min reservation: 2048 KiB
balloon0: max reservation: 17179869180 KiB
balloon0: WARNING: power management not supported
balloon0: error, couldn't read xenbus target node


Then when starting a HVM guest, the kernel floods the serial console with

balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512


for about 20 seconds until the crash happens:

balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
balloon0: inflate 512 => inflated by 512
uvm_fault(0xffffffff80c6b220, 0xffffffff81400000, 1) -> e
fatal page fault in supervisor mode
trap type 6 code 0 rip ffffffff8054593d cs e030 rflags 10216 cr2
ffffffff81400000 cpl 0 rsp f
fffa00057ce3a40
kernel: page fault trap, code=0
Stopped in pid 0.58 (system) at netbsd:pmap_zero_page+0x41: movq 0(%rax,%
rbx,8),%rbx
pmap_zero_page() at netbsd:pmap_zero_page+0x41
uvm_pagealloc_strat() at netbsd:uvm_pagealloc_strat+0x22d
bpge_ctor() at netbsd:bpge_ctor+0x22
pool_cache_get_slow() at netbsd:pool_cache_get_slow+0x1df
pool_cache_get_paddr() at netbsd:pool_cache_get_paddr+0x1f7
balloon_thread() at netbsd:balloon_thread+0x3bc
ds 0
es 0x1122
fs 0x9aa0
gs 0
rdi 0xbbe00000
rsi 0xffffffff80cec1c0 ld_prime+0x1860
rbp 0xffffa00057ce3a70
rbx 0xbbe00
rdx 0xffffffff80bd0048 cpu_info_primary+0x188
rcx 0
rax 0xffffffff80e21000
r8 0xffffa0000f215f00
r9 0xffffa000055838c0
r10 0
r11 0
r12 0
r13 0x7fd000000010
r14 0
r15 0
rip 0xffffffff8054593d pmap_zero_page+0x41
cs 0xe030
rflags 0x10216
rsp 0xffffa00057ce3a40
ss 0xe02b
db>


BTW: The HVM guest gets 4GB RAM assigned and Xen uses
0x200 4KB pages, 0x3fb 2MB pages and 0x1 1GB pages for it.

Err... Xen uses 0x2 1GB pages. Sorry.


Christoph



Home | Main Index | Thread Index | Old Index