VirtualBox + VIMAGE

Brandon Gooch jamesbrandongooch at gmail.com
Tue Mar 1 15:21:33 UTC 2011


On Sat, Jan 29, 2011 at 6:25 AM, Bernhard Froehlich <decke at freebsd.org> wrote:
> On Wed, 26 Jan 2011 18:23:26 -0600, Brandon Gooch wrote:
>> On Jan 26, 2011, at 5:33 PM, Bernhard Froehlich <decke at FreeBSD.org> wrote:
>>
>>> On Wed, 26 Jan 2011 23:27:27 +0200, Mikolaj Golub wrote:
>>>> On Wed, 26 Jan 2011 14:18:03 +0000 (UTC) Bjoern A. Zeeb wrote:
>>>>
>>>> BAZ> On Wed, 26 Jan 2011, Mikolaj Golub wrote:
>>>>
>>>>>>
>>>>>> On Wed, 26 Jan 2011 09:15:46 +0000 (UTC) Bjoern A. Zeeb wrote:
>>>>>>
>>>>>> BAZ> I think you should wrap the CURVNET changes in __FreeBSD_version
>>>>>> BAZ> checks so that the port, should it run elsewhere or on older
>>>> FreeBSDs
>>>>>> BAZ> (if it runs there) not trouble people having to patch it away.
>>>>>>
>>>>>> BAZ> #if defined(__FreeBSD_version) && __FreeBSD_version >= 800500
>>>>>> BAZ> #endif
>>>>>>
>>>>>> BAZ> might be a save bet.
>>>>>>
>>>>>> Thanks. Something like in the patch below?
>>>>>>
>>>>>> Note, I have not run this version yet. Will test it tonight or tomorrow.
>>>>
>>>> BAZ> Well, you will need to include <sys/param.h> as well, and that only if
>>>> BAZ> you are on FreeBSD so you'll need an extra check for just that I
>>>> BAZ> guess.  Not sure how vbox handles the all this in their guts.
>>>>
>>>> The file has already had '#include <sys/param.h>' among other includes. It
>>>> just is not seen in the patch. The file is used only for FreeBSD driver so
>>>> there is no need in extra check I think.
>>>>
>>>> I have tested this latest version of the patch. It works for me.
>>>
>>> Could someone with a vimage enabled kernel please test bridging with a
>>> stock emulators/virtualbox-ose-kmod port? There was a report that this
>>> causes a crash and it would be good to verify if that is still valid:
>>>
>>> http://lists.freebsd.org/pipermail/freebsd-emulation/2009-November/007055.html
>>>
>>> --
>>> Bernhard Froehlich
>>> http://www.bluelife.at/
>>> _______________________________________________
>>> freebsd-emulation at freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-emulation
>>> To unsubscribe, send any mail to "freebsd-emulation-unsubscribe at freebsd.org"
>>
>> It still crashes.
>>
>> -Brandon
>
> Thanks for testing that. Does vbox crash or the kernel? Is it possible
> to get a backtrace?
>
> We could try to detect if the kernel has vimage enabled (sysctl?) and
> also enable the vimage option per default in the port in that case.
>
> --
> Bernhard Froehlich
> http://www.bluelife.at/
>

Sorry for the late reply. I think I misrepresented the situation in my
previous message in this thread. I didn't have Mikolaj's patch applied
when I stated virtualbox is "still crashing". My bad. However, I've
moved on to testing vbox from the bluelife svn repo:

$ VBoxManage --version
4.0.4_OSEr70112

$ svn info
Path: .
URL: http://svn.bluelife.at/projects/blueports/emulators/virtualbox-ose
Repository Root: http://svn.bluelife.at/projects/blueports
Repository UUID: 1a7a46e7-033b-dd11-8caa-001a92771ec2
Revision: 1237
Node Kind: directory
Schedule: normal
Last Changed Author: decke
Last Changed Rev: 1237
Last Changed Date: 2011-02-28 03:43:36 -0600 (Mon, 28 Feb 2011)

The VIMAGE-enabled kernel still crashes:

x300.flick.local dumped core - see /var/crash/vmcore.3

Tue Mar  1 09:07:43 CST 2011

FreeBSD x300.flick.local 9.0-CURRENT FreeBSD 9.0-CURRENT #5 r218907M:
Tue Mar  1 08:32:39 CST 2011
root at x300.flick.local:/usr/obj/usr/src/sys/X300  amd64

panic:

GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...

Unread portion of the kernel message buffer:


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address	= 0x28
fault code		= supervisor read data, page not present
instruction pointer	= 0x20:0xffffffff8047fcfa
stack pointer	        = 0x28:0xffffff809318c650
frame pointer	        = 0x28:0xffffff809318c670
code segment		= base 0x0, limit 0xfffff, type 0x1b
			= DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags	= interrupt enabled, resume, IOPL = 0
current process		= 3064 (VBoxHeadless)
Physical memory: 2007 MB
Dumping 133 MB: 118 102 86 70 54 38 22 6

Reading symbols from /boot/kernel/if_em.ko...Reading symbols from
/boot/kernel/if_em.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/if_em.ko
Reading symbols from /boot/kernel/if_iwn.ko...Reading symbols from
/boot/kernel/if_iwn.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/if_iwn.ko
Reading symbols from /boot/kernel/snd_hda.ko...Reading symbols from
/boot/kernel/snd_hda.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/snd_hda.ko
Reading symbols from /boot/kernel/sound.ko...Reading symbols from
/boot/kernel/sound.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/sound.ko
Reading symbols from /boot/kernel/usb.ko...Reading symbols from
/boot/kernel/usb.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/usb.ko
Reading symbols from /boot/kernel/uhid.ko...Reading symbols from
/boot/kernel/uhid.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/uhid.ko
Reading symbols from /boot/kernel/ukbd.ko...Reading symbols from
/boot/kernel/ukbd.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ukbd.ko
Reading symbols from /boot/kernel/ums.ko...Reading symbols from
/boot/kernel/ums.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ums.ko
Reading symbols from /boot/kernel/umass.ko...Reading symbols from
/boot/kernel/umass.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/umass.ko
Reading symbols from /boot/kernel/umct.ko...Reading symbols from
/boot/kernel/umct.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/umct.ko
Reading symbols from /boot/kernel/ucom.ko...Reading symbols from
/boot/kernel/ucom.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ucom.ko
Reading symbols from /boot/kernel/uplcom.ko...Reading symbols from
/boot/kernel/uplcom.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/uplcom.ko
Reading symbols from /boot/kernel/coretemp.ko...Reading symbols from
/boot/kernel/coretemp.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/coretemp.ko
Reading symbols from /boot/kernel/acpi_video.ko...Reading symbols from
/boot/kernel/acpi_video.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/acpi_video.ko
Reading symbols from /boot/kernel/acpi_ibm.ko...Reading symbols from
/boot/kernel/acpi_ibm.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/acpi_ibm.ko
Reading symbols from /boot/kernel/i915.ko...Reading symbols from
/boot/kernel/i915.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/i915.ko
Reading symbols from /boot/kernel/drm.ko...Reading symbols from
/boot/kernel/drm.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/drm.ko
Reading symbols from /boot/kernel/usb_quirk.ko...Reading symbols from
/boot/kernel/usb_quirk.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/usb_quirk.ko
Reading symbols from /boot/kernel/ehci.ko...Reading symbols from
/boot/kernel/ehci.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ehci.ko
Reading symbols from /boot/kernel/uhci.ko...Reading symbols from
/boot/kernel/uhci.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/uhci.ko
Reading symbols from /boot/modules/vboxdrv.ko...done.
Loaded symbols for /boot/modules/vboxdrv.ko
Reading symbols from /boot/kernel/linprocfs.ko...Reading symbols from
/boot/kernel/linprocfs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linprocfs.ko
Reading symbols from /boot/kernel/linux.ko...Reading symbols from
/boot/kernel/linux.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linux.ko
Reading symbols from /boot/modules/vboxnetflt.ko...done.
Loaded symbols for /boot/modules/vboxnetflt.ko
Reading symbols from /boot/kernel/netgraph.ko...Reading symbols from
/boot/kernel/netgraph.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/netgraph.ko
Reading symbols from /boot/kernel/ng_ether.ko...Reading symbols from
/boot/kernel/ng_ether.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_ether.ko
Reading symbols from /boot/modules/vboxnetadp.ko...done.
Loaded symbols for /boot/modules/vboxnetadp.ko
#0  doadump () at /usr/src/sys/kern/kern_shutdown.c:250
250		if (textdump_pending)
(kgdb) #0  doadump () at /usr/src/sys/kern/kern_shutdown.c:250
#1  0xffffffff802dd64c in db_fncall (dummy1=Variable "dummy1" is not available.
)
    at /usr/src/sys/ddb/db_command.c:548
#2  0xffffffff802dd981 in db_command (last_cmdp=0xffffffff80a45540,
cmd_table=Variable "cmd_table" is not available.

) at /usr/src/sys/ddb/db_command.c:445
#3  0xffffffff802ddbd0 in db_command_loop ()
    at /usr/src/sys/ddb/db_command.c:498
#4  0xffffffff802dfc19 in db_trap (type=Variable "type" is not available.
) at /usr/src/sys/ddb/db_main.c:229
#5  0xffffffff803ff781 in kdb_trap (type=12, code=0, tf=0xffffff809318c5a0)
    at /usr/src/sys/kern/subr_kdb.c:533
#6  0xffffffff806a89bd in trap_fatal (frame=0xffffff809318c5a0,
eva=Variable "eva" is not available.
)
    at /usr/src/sys/amd64/amd64/trap.c:798
#7  0xffffffff806a8ded in trap_pfault (frame=0xffffff809318c5a0, usermode=0)
    at /usr/src/sys/amd64/amd64/trap.c:719
#8  0xffffffff806a931f in trap (frame=0xffffff809318c5a0)
    at /usr/src/sys/amd64/amd64/trap.c:471
#9  0xffffffff806938a3 in calltrap ()
    at /usr/src/sys/amd64/amd64/exception.S:228
#10 0xffffffff8047fcfa in ifunit (name=0xfffffe00326103f0 "em0")
    at /usr/src/sys/net/if.c:2018
#11 0xffffffff81044493 in vboxNetFltOsInitInstance ()
   from /boot/modules/vboxnetflt.ko
#12 0xffffffff810455a3 in vboxNetFltFactoryCreateAndConnect ()
   from /boot/modules/vboxnetflt.ko
#13 0xffffffff810a3f31 in ?? ()
#14 0x0000000000000000 in ?? ()
#15 0x0000000000000018 in ?? ()
#16 0x0000000000000018 in ?? ()
#17 0xffffff809318c7f8 in ?? ()
#18 0x0000000000030000 in ?? ()
#19 0xfffffe00326108c0 in ?? ()
#20 0x0000000300000001 in ?? ()
#21 0xfffffe0001b4a810 in ?? ()
#22 0xfffffe0001b08310 in ?? ()
#23 0x000000029318c830 in ?? ()
#24 0xffffffff810c1135 in ?? ()
#25 0xfffffe00326106f8 in ?? ()
#26 0xfffffe0032610610 in ?? ()
#27 0xfffffe0001b4a810 in ?? ()
#28 0xffffffff810467d0 in g_VBoxNetFltGlobals ()
   from /boot/modules/vboxnetflt.ko
#29 0xffffffff80f576c0 in g_cUsers () from /boot/modules/vboxdrv.ko
#30 0xffffff8093192000 in ?? ()
#31 0x0000000000000000 in ?? ()
#32 0xfffffe0032610800 in ?? ()
#33 0xfffffe0032610800 in ?? ()
#34 0xffffff809318c820 in ?? ()
#35 0xffffffff810a4083 in ?? ()
#36 0x000000000004f800 in ?? ()
#37 0xfffffe0032610910 in ?? ()
#38 0xffffff809318c860 in ?? ()
#39 0xffffffff8106ca7e in ?? ()
#40 0xfffffe0001abd380 in ?? ()
#41 0x0000000000000000 in ?? ()
#42 0xffffffff80f576c0 in g_cUsers () from /boot/modules/vboxdrv.ko
#43 0x00000000c1185687 in ?? ()
#44 0xfffffe0001b4a810 in ?? ()
#45 0xfffffe0032610800 in ?? ()
#46 0xffffff809318c8a0 in ?? ()
#47 0xffffffff8106d408 in ?? ()
#48 0xfffffe0001abd390 in ?? ()
#49 0x00000013003d0000 in ?? ()
#50 0x0000000000000000 in ?? ()
#51 0x00000000c0305699 in ?? ()
#52 0xfffffe0001b4a810 in ?? ()
#53 0xfffffe0001b091c0 in ?? ()
#54 0xffffff809318c950 in ?? ()
#55 0xffffffff80f36952 in supdrvIOCtl () from /boot/modules/vboxdrv.ko
Previous frame inner to this frame (corrupt stack?)
(kgdb)

------------------------------------------------------------------------

I haven't attempted an adaptation of Mikolaj's original patch, but I
may find time to do that later if another option isn't presented :)

Thanks!

-Brandon


More information about the freebsd-emulation mailing list