DragonFly won't boot on qemu-kvm-1.0

Matthew Dillon dillon at apollo.backplane.com
Thu Oct 11 08:16:34 PDT 2012

:It works fine with -no-kvm, which is how I was able to update /usr/src
:and build a new world and kernel (although it took >24h)
:HAMMER(ROOT) recovery nexto 3000000003848338 endseqno=00442468
:HAMMER(ROOT) mounted clean, no recovery needed
:DMA space used: 144k, remaining available: 16384k
:Fatal trap 9: general protection fault while in kernel mode
:cpuid = 0; lapic->id = 00000000
:instruction pointer = 0x8:0xffffffff80898a02
:stack pointer        = 0x10:0xffffffe00e457c00
:frame pointer        = 0x10:0xffffffe003218bb0
:code segment = base 0x0, limit 0xfffff, type 0x1b
:= DPL 0, pres 1, long 0, def32 0, gran 1
:processor eflags = interrupt enabled, IOPL = 0
:current process = 1
:current thread          = pri 10 (CRIT)
:kernel: type 9 trap, code=0
:CPU0 stopping CPUs: 0x00000000
: stopped
:Stopped at      cpu_heavy_restore+0x72: movl    %ecx,%cr3
:db> trace
:cpu_heavy_restore() at cpu_heavy_restore+0x72 0xffffffff80898a02
:tsleep() at tsleep+0x5ab 0xffffffff80509071
:dfly_helper_thread() at dfly_helper_thread+0x324 0xffffffff804f7de5
:db> show registers
:cs                 0x8  gd_curthread
:ss                0x10  gd_curthread+0x8
:rax         0xffffffe00e465870
:rcx         0x3dfdc007
:rdx         0xffffffe00e457ce0
:rbx         0xffffffff82248ae8  dfly_pcpu+0x8
:rsp         0xffffffe00e457c10
:rbp         0xffffffe003218bb0
:rsi          0x349c000
:rdi         0xffffffe00e465870
:rip         0xffffffff80898a02  cpu_heavy_restore+0x72
:rfl              0x202  gd_cnt+0x18e
:r8          0xffffffff82249610  dfly_pcpu+0xb30
:r9          0xfffffdff
:r10                  0
:r11         0xffffffff822490a0  dfly_pcpu+0x5c0
:r12         0xffffffe00e465870
:r13         0xffffffff82248ae8  dfly_pcpu+0x8
:r14         0xffffffe00e465870
:r15                  0
:dr0                  0
:dr1                  0
:dr2                  0
:dr3                  0
:dr4         0xffff0ff0
:dr5              0x400  gd_cnt+0x38c
:dr6         0xffff0ff0
:dr7              0x400  gd_cnt+0x38c
:cpu_heavy_restore+0x72: movl    %ecx,%cr3
:What can I do to help diagnose this?

    It's basically dying on an instruction that it shouldn't be
    dying on.  All I can think of is that the linux hw kvm stuff
    isn't implementing the instruction properly, or that it is
    not reporting physical memory properly.

    This would need a kvm expert to figure out.  The register
    state looks correct, but we could try to match up %rcx's 
    physical memory address against the list of memory regions.

    If you boot the kernel verbose and record the entire dmesg output
    we can match those up to see if they are reasonable.

					Matthew Dillon 
					<dillon at backplane.com>

More information about the Users mailing list