Running GNU Mach in VirtualBox crashes during initialization.

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

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