On Tuesday 08 January 2008 03:35:48 Dave Hansen wrote: > With kvm-44, I thought my kernel was freezing during boot if I gave it > 1G of RAM. But, it boots fine with 512M. > > So, I instrumented the kernel, and found out that it is just taking a > long time to memset a 58MB area of memory for mem_map[]. It appears to > be taking a mmio_exit for every access of every byte of memory. The end > result is a ~100kbps memset() speed. Yes, 100 kilobytes/sec. > > I just tried kvm from git, and the kernel doesn't even get that far. I > see this in debugfs > > insn_emulation:1393985 > > even before I get a single kernel message. And it keeps going up, fast. > I can get the kernel to boot just fine if I give it less than 896MB of > RAM. > > kvm-44 boots long enough for me to see a really funky e820 table: > > BIOS-provided physical RAM map: > BIOS-e820: 0000000000000000 - 000000000009fc00 (usable) > BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved) > BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved) > BIOS-e820: 0000000000100000 - 00000000fffbd000 (usable) > BIOS-e820: 00000000fffbd000 - 00000000ffff0000 (reserved) > > Note that this is with '-m 1G'!! It looks to me like one of those
And there lies the problem. qemu doesn't understand suffixes like 'G'. If you pass -m 1024, you'll boot just fine. This is really annoying of qemu (it should either accept that input properly or bail out); a patch is welcome! > sections is basically from 0x100000 up to ~4G and *usable*. That > doesn't look right. > > Eventually, the kvm-git one just pukes: > > exception 13 (33) > rax 0000000000000002 rbx 0000000000002000 rcx 0000000000000000 rdx > 0000000000000000 rsi 00000000002a1358 rdi 0000000000099100 rsp > 000000000000673a rbp 000000000000673a r8 0000000000000000 r9 > 0000000000000000 r10 0000000000000000 r11 0000000000000000 r12 > 0000000000000000 r13 0000000000000000 r14 0000000000000000 r15 > 0000000000000000 rip 000000000000fb24 rflags 00033086 > cs 9020 (00090200/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) > ds 9000 (00090000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) > es 9000 (00090000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) > ss 9000 (00090000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) > fs 9000 (00090000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) > gs 9000 (00090000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) > tr 0000 (fffbd000/00002088 p 1 dpl 0 db 0 s 0 type b l 0 g 0 avl 0) > ldt 0000 (00000000/0000ffff p 1 dpl 0 db 0 s 0 type 2 l 0 g 0 avl 0) > gdt 8f5c/27 > idt 0/3ff > cr0 60000010 cr2 0 cr3 0 cr4 0 cr8 0 efer 0 > code: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 --> f0 01 > f0 03 0e 00 00 00 70 01 70 03 0f 00 00 00 e8 01 e0 03 0c 00 00 00 68 01 60 > 03 0b 00 Aborted > > Any idea how to debug this? > > -- Dave ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel