[[!meta copyright="Copyright © 2011, 2012 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!toc]] # Running GNU Mach in VirtualBox crashes during initialization. [[!tag open_issue_gnumach]] ## IRC, freenode, #hurd, 2011-08-15 <BlueT_> HowTo Reproduce: 1) Use `reboot` to reboot the system. 2) Once you see the Grub menu, turn off the debian hurd box. 3) Let the box boot normally, and wait for the error/crash/reboot. 4) The error/crash will happen twice and it's reboot automatically. The 3rd boot will success. <BlueT_> root@dhurd:/boot# addr2line -f -e gnumach-1.3.99-486-dbg-copy 0x106c93 0x1556a5 0x152c54 <BlueT_> copyoutmsg <BlueT_> /home/buildd/build/chroot-sid/home/buildd/byhand/gnumach/build-dbg/../i386/i386/locore.S:1289 <BlueT_> exec_load <BlueT_> /home/buildd/build/chroot-sid/home/buildd/byhand/gnumach/build-dbg/../kern/elf-load.c:80 <BlueT_> user_bootstrap <BlueT_> /home/buildd/build/chroot-sid/home/buildd/byhand/gnumach/build-dbg/../kern/bootstrap.c:756 i386/i386/locore.S:1289 is movl $USER_DS,%eax /* use user data segment for accesses */ => mov %ax,%es State is cs: 0x8 ds: 0x10 es: 0x10 fs: 0 gs: 0 ss: 0x10 eax: 0x1f ecx: 0x8048000 edx: 0x15fb7f ebx: 0x1001000 esp: 0x75e47e08 ebp: 0x75e47e6c esi: 0x1002000 edi: 0x8048000 eip: 0x106c93 efl: 0x10206 <youpi> oh, wait, it's not even the data access which poses problem <youpi> but the use of $USER_DS <youpi> ew <youpi> looks like a gdt initialization emulation issue in virtualbox... <BlueT_> just found that at the second crash, the address is different <BlueT_> 2nd time: <BlueT_> addr2line -f -e gnumach-1.3.99-486-dbg-copy 0x1068bd 0x152c74 <BlueT_> _kret_popl_es <BlueT_> /home/buildd/build/chroot-sid/home/buildd/byhand/gnumach/build-dbg/../i386/i386/locore.S:527 <BlueT_> user_bootstrap <BlueT_> /home/buildd/build/chroot-sid/home/buildd/byhand/gnumach/build-dbg/../kern/bootstrap.c:765 i386/i386/locore.S:527 is: _return_from_kernel: _kret_popl_gs: popl %gs /* restore segment registers */ _kret_popl_fs: popl %fs _kret_popl_es: => popl %es _kret_popl_ds: cs: 0x8 ds: 0x10 es: 0x10 fs: 0 gs: 0 ss: 0x10 eax: 0x106c95 ecx: 0x6aab096c edx: 0x106cec ebx: 0x75e47f04 esp: 0x75e47f0c ebp: 0x75e47fac esi: 0x75e47f8c edi: 0x7fffff3c eip: 0x1068bd efl: 0x10216 <youpi> looks again like a $USER_DS issue <youpi> what's interesting is that that one means that $USER_DS did load in %es fine at least once <youpi> and it's the reload that fails # Slow SCSI probing [[!tag open_issue_gnumach]] ## IRC, freenode, #hurd, 2012-08-07 <braunr> youpi: it seems the slow boot on virtualbox is really because of scsi (it spends a long time in scsi_init, probing for all the drivers) <youpi> braunr: we know that <youpi> isn't it in the io port probe printed at boot? <youpi> iirc that was that <braunr> the discussion i found was about eata <braunr> not the whole scsi group <youpi> there used to be another in eata, yas <braunr> oh <braunr> i must have missed the first discussion then <youpi> I mean <youpi> the eata is the first <braunr> ok <youpi> and scsi was mentioned later <youpi> just nobody took the time to track it down <braunr> ok <braunr> so it's not just a matter of disabling a single driver :( <youpi> braunr: I still believe it's a matter of disableing a single driver <youpi> I don't see why scsi in general should take a lot of time <braunr> youpi: it doesn't on qemu, it may simply be virtualbox's fault <youpi> it is, yes <youpi> and virtualbox people say it's hurd's fault, of course <braunr> both are possible <braunr> but we can't expect them to fix it :) <youpi> that's what I mean