Panic when trying to start a virtual machine under the latest VirtualBox, on up-to-date world and up-to-date ports. kgdb session follows. # kgdb kernel.debug /var/crash/vmcore.1 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 "i386-marcel-freebsd"... Unread portion of the kernel message buffer: panic: vm_page_insert: page already inserted cpuid = 3 KDB: stack backtrace: #0 0xc0adbaaf at kdb_backtrace+0x4f #1 0xc0aa1e9f at panic+0x16f #2 0xc0d38cca at vm_page_insert+0x2a #3 0xc1668bf8 at rtR0MemObjFreeBSDContigPhysAllocHelper+0xe8 #4 0xc1668d5d at rtR0MemObjFreeBSDPhysAllocHelper+0x10d #5 0xc166904a at rtR0MemObjFreeBSDAllocHelper+0xca #6 0xc1669131 at rtR0MemObjNativeAllocCont+0x61 #7 0xc91d2e5b at _end+0xc98a43 #8 0xc91c26bb at _end+0xc882a3 #9 0xc91d84fc at _end+0xc9e0e4 #10 0xc165157d at supdrvIOCtl+0x29ad #11 0xc16565fe at VBoxDrvFreeBSDIOCtl+0x1fe #12 0xc0978eea at devfs_ioctl_f+0x10a #13 0xc0aee6a0 at kern_ioctl+0x2a0 #14 0xc0aee7ff at sys_ioctl+0x12f #15 0xc0f66ce3 at syscall+0x443 #16 0xc0f50771 at Xint0x80_syscall+0x21 Uptime: 4m11s Physical memory: 3051 MB Dumping 189 MB: (CTRL-C to abort) 174 158 142 126 110 94 78 62 46 30 14 Reading symbols from /boot/modules/vboxdrv.ko...done. Loaded symbols for /boot/modules/vboxdrv.ko Reading symbols from /boot/kernel/fdescfs.ko...Reading symbols from /boot/kernel/fdescfs.ko.symbols...done. done. Loaded symbols for /boot/kernel/fdescfs.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 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 /usr/local/modules/fuse.ko...done. Loaded symbols for /usr/local/modules/fuse.ko Reading symbols from /boot/kernel/radeon.ko...Reading symbols from /boot/kernel/radeon.ko.symbols...done. done. Loaded symbols for /boot/kernel/radeon.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 #0 doadump (textdump=1) at pcpu.h:249 249 __asm("movl %%fs:%1,%0" : "=r" (td) (kgdb) bt #0 doadump (textdump=1) at pcpu.h:249 #1 0xc0aa1bee in kern_reboot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:454 #2 0xc0aa1ee5 in panic (fmt=<value optimized out>) at /usr/src/sys/kern/kern_shutdown.c:642 #3 0xc0d38cca in vm_page_insert (m=0xc435b598, object=0xc91b1818, pindex=Unhandled dwarf expression opcode 0x93 ) at /usr/src/sys/vm/vm_page.c:915 #4 0xc1668bf8 in rtR0MemObjFreeBSDContigPhysAllocHelper () from /boot/modules/vboxdrv.ko #5 0xc1668d5d in rtR0MemObjFreeBSDPhysAllocHelper () from /boot/modules/vboxdrv.ko #6 0xc166904a in rtR0MemObjFreeBSDAllocHelper () from /boot/modules/vboxdrv.ko #7 0xc1669131 in rtR0MemObjNativeAllocCont () from /boot/modules/vboxdrv.ko #8 0xc91d2e5b in ?? () #9 0xc92a5ae0 in ?? () #10 0x00003000 in ?? () #11 0x00000000 in ?? () How-To-Repeat: Launch VirtualBox and try to start a virtual machine. System hangs immediately. The above panic was caused outside of X, by trying to start a headless VM using VBoxManage.
Responsible Changed From-To: freebsd-ports-bugs->vbox Over to maintainer (via the GNATS Auto Assign Tool)
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Please download the following file: https://svn.redports.org/virtualbox/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd.c Then, replace the existing file in emulators/virtualbox-ose/files directory with it, rebuild emulators/virtualbox-ose-kmod, and try again. Please note the patch directory is NOT emulators/virtualbox-ose-kmod/files. BTW, you must update your kernel first to test this patch, i.e., r263171 or later because __FreeBSD_version was bumped little late. Jung-uk Kim -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (FreeBSD) iQEcBAEBAgAGBQJTI1XMAAoJEHyflib82/FGU9AH/Rir0KvxP5iG8POoE/lNGVrA EIjblk4PBRFIAozmeJbjuNlLDfwv1bgGZ5D6ZBkcrPd4fbaLKEtlG9KT1QzFdMk7 W1vYbQ8k9t3prXHc2YDXyy8STXRaH/fyFnrCvxxbdR8AVO4cOi6WnQBxpVAuv3xo ZGyom00Rq9Ymcxo3oA1agoNAiyrPNGCP2Uz1tWWAAYsa09G2MbpT+QP+ADc8zZxj ZB3gOw3FVCUcNeYfofxdd+6ofG3Jp/H7iomueyPsS5c88WG/YZRop+lXIX7fhKOX JY0l2AdCBV6a31mKDlRWRO2wfwN4RyV/kj7RPh5DzEyfnaTtO0QAy5MBAlgS5xU= =bccj -----END PGP SIGNATURE-----
Same problem here. When trying with replaced patch as suggested I am getting Mar 15 17:02:47 cad kernel: FreeBSD 9.2-STABLE #33 r263203: Sat Mar 15 11:56:03 CET 2014 Mar 15 17:02:47 cad kernel: root@cad.lecad.fs.uni-lj.si:/usr/obj/usr/src/sys/CAD amd64 Mar 15 17:02:47 cad kernel: gcc version 4.2.1 20070831 patched [FreeBSD] Mar 15 17:02:47 cad kernel: link_elf_obj: symbol vm_pageout_grow_cache undefined Mar 15 17:02:47 cad kernel: KLD file vboxdrv.ko - could not finalize loading ... Best regards, Leon Kos
Hi, On Fri, 14 Mar 2014, Jung-uk Kim wrote: > Then, replace the existing file in emulators/virtualbox-ose/files > directory with it, rebuild emulators/virtualbox-ose-kmod, and try > again. Please note the patch directory is NOT > emulators/virtualbox-ose-kmod/files. I tried on r263205 and I have been able to start an i386 FreeBSD VM only once; I usually get this: Tracing pid 2489 tid 101003 td 0xfffffe01eb862920 kdb_enter() at kdb_enter+0x3b/frame 0xffffff8495797630 panic() at panic+0x1c7/frame 0xffffff8495797730 vm_page_insert() at vm_page_insert+0x177/frame 0xffffff8495797760 rtR0MemObjFreeBSDContigPhysAllocHelper() at rtR0MemObjFreeBSDContigPhysAllocHelper+0xc1/frame 0xffffff84957977b0 rtR0MemObjFreeBSDPhysAllocHelper() at rtR0MemObjFreeBSDPhysAllocHelper+0x67/frame 0xffffff8495797800 rtR0MemObjFreeBSDAllocPhysPages() at rtR0MemObjFreeBSDAllocPhysPages+0x81/frame 0xffffff8495797850 rtR0MemObjNativeAllocPhysNC() at rtR0MemObjNativeAllocPhysNC+0x28/frame 0xffffff8495797870 SUPR0PageAllocEx() at SUPR0PageAllocEx+0x253/frame 0xffffff84957978f0 supdrvIOCtl() at supdrvIOCtl+0x1bd7/frame 0xffffff8495797980 VBoxDrvFreeBSDIOCtl() at VBoxDrvFreeBSDIOCtl+0x1e3/frame 0xffffff84957979f0 devfs_ioctl_f() at devfs_ioctl_f+0x7b/frame 0xffffff8495797a60 kern_ioctl() at kern_ioctl+0x106/frame 0xffffff8495797ab0 sys_ioctl() at sys_ioctl+0xfd/frame 0xffffff8495797b10 amd64_syscall() at amd64_syscall+0x5ea/frame 0xffffff8495797c30 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8495797c30 --- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x801282d9c, rsp = 0x7fffff9a5868, rbp = 0x7fffff9a5870 --- I¢m not sure if the one time success is related to the patch or to mere luck. If you need any test just drop me a line. -- jimmy
Hello Jung-uk, On Fri, Mar 14, 2014 at 03:17:32PM -0400, Jung-uk Kim wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Please download the following file: > > https://svn.redports.org/virtualbox/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd.c > > Then, replace the existing file in emulators/virtualbox-ose/files > directory with it, rebuild emulators/virtualbox-ose-kmod, and try > again. Please note the patch directory is NOT > emulators/virtualbox-ose-kmod/files. > > BTW, you must update your kernel first to test this patch, i.e., > r263171 or later because __FreeBSD_version was bumped little late. I updated this morning and rebuilt world. # uname -a FreeBSD myhost 9.2-STABLE FreeBSD 9.2-STABLE #66 r263261: Mon Mar 17 08:50:31 CET 2014 root@myhost:/usr/obj/usr/src/sys/GENERIC i386 I have now the same problem as Leon Kos: # dmesg Copyright (c) 1992-2014 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 9.2-STABLE #66 r263261: Mon Mar 17 08:50:31 CET 2014 root@myhost:/usr/obj/usr/src/sys/GENERIC i386 gcc version 4.2.1 20070831 patched [FreeBSD] link_elf: symbol vm_pageout_grow_cache undefined KLD file vboxdrv.ko - could not finalize loading [...] Thank you for your support! Best regards, -- rigo http://rigo.altervista.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I just updated the patch. Please re-download the patch and try again. https://svn.redports.org/virtualbox/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd.c The prerequisite is still the same, i. e., your kernel and kernel source must be up-to-date, at least r263171. Sorry about the mess. Jung-uk Kim -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (FreeBSD) iQEcBAEBAgAGBQJTJ0AXAAoJEHyflib82/FGDZEH/RGbpQt00VopcueJfYJNDZJI SqZppTsFEdChP7zA97k1Ksay3kl1CMU1d37A7lLtygoRLhlnlACiX0a2L0bFNuZj MDYYCRvlTzkGqUzoGopiNLphT29U2hFo1TGsISjaNd/AT5MyIClMAy9A+Q062kSd LVrnpGlN4j3QIBwVwCDyCCER6EXJSJuuUmz7zOlbg67W/1wZdH0zetW9XvFEtCDP 3gttRuPR03N61ySh8xJfYr3ePj4Yvpgx/CG+xufhPv9oA8bBRS5MIqhL2UJBMd/W wWeMuEbqfJ5+/GufOs9SR164QE6bTNcaYkmDtdLxe/17MdMo6kU748LRajKSdMk= =UP+M -----END PGP SIGNATURE-----
Hello Jung-uk, On Mon, Mar 17, 2014 at 02:33:59PM -0400, Jung-uk Kim wrote: [...] > I just updated the patch. Please re-download the patch and try again. > > https://svn.redports.org/virtualbox/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd.c > > The prerequisite is still the same, i. e., your kernel and kernel > source must be up-to-date, at least r263171. This time, it seems to work fine! I have been running a Linux VM for some time with no problems. Can you think of any tests I can do to make sure that the problem is solved? (I only have Linux VM's) > Sorry about the mess. Thank you for your support! Best regards, -- rigo http://rigo.altervista.org
Author: jkim Date: Thu Mar 20 18:11:11 2014 New Revision: 348711 URL: http://svnweb.freebsd.org/changeset/ports/348711 QAT: https://qat.redports.org/buildarchive/r348711/ Log: Fix panic for stable/9. Use vm_page_alloc_contig() as it is now available. Tested by: Douglas Berry (doug at bitnix dot ca) PR: ports/187580 Added: head/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_PAGEOUT_GROW_CACHE.c (contents, props changed) Modified: head/emulators/virtualbox-ose-additions/Makefile head/emulators/virtualbox-ose-kmod-legacy/Makefile head/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_OBJECT_RENAME.c head/emulators/virtualbox-ose-kmod/Makefile head/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd.c Modified: head/emulators/virtualbox-ose-additions/Makefile ============================================================================== --- head/emulators/virtualbox-ose-additions/Makefile Thu Mar 20 18:01:39 2014 (r348710) +++ head/emulators/virtualbox-ose-additions/Makefile Thu Mar 20 18:11:11 2014 (r348711) @@ -3,6 +3,7 @@ PORTNAME= virtualbox-ose DISTVERSION= 4.3.8 +PORTREVISION= 1 CATEGORIES= emulators MASTER_SITES= http://download.virtualbox.org/virtualbox/${DISTVERSION}/ \ http://tmp.chruetertee.ch/ \ Modified: head/emulators/virtualbox-ose-kmod-legacy/Makefile ============================================================================== --- head/emulators/virtualbox-ose-kmod-legacy/Makefile Thu Mar 20 18:01:39 2014 (r348710) +++ head/emulators/virtualbox-ose-kmod-legacy/Makefile Thu Mar 20 18:11:11 2014 (r348711) @@ -3,6 +3,7 @@ PORTNAME= virtualbox-ose DISTVERSION= 4.2.22 +PORTREVISION= 1 CATEGORIES= emulators MASTER_SITES= http://download.virtualbox.org/virtualbox/${DISTVERSION}/ \ http://tmp.chruetertee.ch/ \ Modified: head/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_OBJECT_RENAME.c ============================================================================== --- head/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_OBJECT_RENAME.c Thu Mar 20 18:01:39 2014 (r348710) +++ head/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_OBJECT_RENAME.c Thu Mar 20 18:11:11 2014 (r348711) @@ -1,7 +1,7 @@ $FreeBSD$ ---- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2013-03-20 19:19:36.795745576 -0700 -+++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2013-03-20 19:15:35.164791970 -0700 +--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2014-03-14 17:25:46.000000000 -0400 ++++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2014-03-14 17:34:35.000000000 -0400 @@ -162,7 +162,11 @@ case RTR0MEMOBJTYPE_PHYS: case RTR0MEMOBJTYPE_PHYS_NC: @@ -14,7 +14,7 @@ $FreeBSD$ vm_page_t pPage = vm_page_find_least(pMemFreeBSD->pObject, 0); #if __FreeBSD_version < 900000 /* See http://lists.freebsd.org/pipermail/freebsd-current/2012-November/037963.html */ -@@ -177,7 +181,12 @@ +@@ -177,7 +181,11 @@ #if __FreeBSD_version < 900000 vm_page_unlock_queues(); #endif @@ -23,11 +23,18 @@ $FreeBSD$ +#else VM_OBJECT_UNLOCK(pMemFreeBSD->pObject); +#endif -+ vm_object_deallocate(pMemFreeBSD->pObject); break; } -@@ -205,10 +214,18 @@ +@@ -198,17 +206,25 @@ + vm_page_t pPages; + int cTries = 0; + +-#if __FreeBSD_version > 1000000 ++#if __FreeBSD_version >= 902508 + int fFlags = VM_ALLOC_INTERRUPT | VM_ALLOC_NOBUSY; + if (fWire) + fFlags |= VM_ALLOC_WIRED; while (cTries <= 1) { @@ -46,31 +53,7 @@ $FreeBSD$ if (pPages) break; vm_pageout_grow_cache(cTries, 0, VmPhysAddrHigh); -@@ -228,7 +245,11 @@ - - if (!pPages) - return pPages; -+#if __FreeBSD_version >= 1000030 -+ VM_OBJECT_WLOCK(pObject); -+#else - VM_OBJECT_LOCK(pObject); -+#endif - for (vm_pindex_t iPage = 0; iPage < cPages; iPage++) - { - vm_page_t pPage = pPages + iPage; -@@ -240,7 +261,11 @@ - atomic_add_int(&cnt.v_wire_count, 1); - } - } -+#if __FreeBSD_version >= 1000030 -+ VM_OBJECT_WUNLOCK(pObject); -+#else - VM_OBJECT_UNLOCK(pObject); -+#endif - return pPages; - #endif - } -@@ -264,7 +289,11 @@ +@@ -264,7 +280,11 @@ if (!pPage) { /* Free all allocated pages */ @@ -82,7 +65,7 @@ $FreeBSD$ while (iPage-- > 0) { pPage = vm_page_lookup(pObject, iPage); -@@ -278,7 +307,11 @@ +@@ -278,7 +298,11 @@ vm_page_unlock_queues(); #endif } @@ -94,7 +77,7 @@ $FreeBSD$ return rcNoMem; } } -@@ -411,9 +444,17 @@ +@@ -417,9 +441,17 @@ if (fContiguous) { Assert(enmType == RTR0MEMOBJTYPE_PHYS); @@ -112,7 +95,7 @@ $FreeBSD$ pMemFreeBSD->Core.u.Phys.fAllocated = true; } -@@ -823,9 +864,17 @@ +@@ -838,9 +870,17 @@ case RTR0MEMOBJTYPE_PHYS_NC: { RTHCPHYS addr; Added: head/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_PAGEOUT_GROW_CACHE.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/emulators/virtualbox-ose-kmod-legacy/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_PAGEOUT_GROW_CACHE.c Thu Mar 20 18:11:11 2014 (r348711) @@ -0,0 +1,37 @@ +--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2014-03-17 14:08:04.000000000 -0400 ++++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2014-03-17 14:09:34.000000000 -0400 +@@ -211,7 +211,7 @@ + if (fWire) + fFlags |= VM_ALLOC_WIRED; + +- while (cTries <= 1) ++ while (1) + { + #if __FreeBSD_version >= 1000030 + VM_OBJECT_WLOCK(pObject); +@@ -225,18 +225,22 @@ + #else + VM_OBJECT_UNLOCK(pObject); + #endif +- if (pPages) ++ if (pPages || cTries >= 1) + break; ++#if __FreeBSD_version >= 1000015 + vm_pageout_grow_cache(cTries, 0, VmPhysAddrHigh); ++#else ++ vm_contig_grow_cache(cTries, 0, VmPhysAddrHigh); ++#endif + cTries++; + } + + return pPages; + #else +- while (cTries <= 1) ++ while (1) + { + pPages = vm_phys_alloc_contig(cPages, 0, VmPhysAddrHigh, uAlignment, 0); +- if (pPages) ++ if (pPages || cTries >= 1) + break; + vm_contig_grow_cache(cTries, 0, VmPhysAddrHigh); + cTries++; Modified: head/emulators/virtualbox-ose-kmod/Makefile ============================================================================== --- head/emulators/virtualbox-ose-kmod/Makefile Thu Mar 20 18:01:39 2014 (r348710) +++ head/emulators/virtualbox-ose-kmod/Makefile Thu Mar 20 18:11:11 2014 (r348711) @@ -3,6 +3,7 @@ PORTNAME= virtualbox-ose DISTVERSION= 4.3.8 +PORTREVISION= 1 CATEGORIES= emulators MASTER_SITES= http://download.virtualbox.org/virtualbox/${DISTVERSION}/ \ http://tmp.chruetertee.ch/ \ Modified: head/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd.c ============================================================================== --- head/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd.c Thu Mar 20 18:01:39 2014 (r348710) +++ head/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd.c Thu Mar 20 18:11:11 2014 (r348711) @@ -7,8 +7,8 @@ From Alan L. Cox on FreeBSD-current: answer that question. [1] http://lists.freebsd.org/pipermail/freebsd-current/2012-November/037963.html ---- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2013-11-29 12:04:53.000000000 +0100 -+++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2013-11-29 12:37:29.000000000 +0100 +--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2014-02-25 12:09:32.000000000 -0500 ++++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2014-03-17 13:57:00.000000000 -0400 @@ -168,14 +168,19 @@ VM_OBJECT_LOCK(pMemFreeBSD->pObject); #endif @@ -29,7 +29,75 @@ From Alan L. Cox on FreeBSD-current: #if __FreeBSD_version >= 1000030 VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject); #else -@@ -291,11 +296,15 @@ +@@ -201,12 +206,12 @@ + vm_page_t pPages; + int cTries = 0; + +-#if __FreeBSD_version > 1000000 ++#if __FreeBSD_version >= 902508 + int fFlags = VM_ALLOC_INTERRUPT | VM_ALLOC_NOBUSY; + if (fWire) + fFlags |= VM_ALLOC_WIRED; + +- while (cTries <= 1) ++ while (1) + { + #if __FreeBSD_version >= 1000030 + VM_OBJECT_WLOCK(pObject); +@@ -220,18 +225,20 @@ + #else + VM_OBJECT_UNLOCK(pObject); + #endif +- if (pPages) ++ if (pPages || cTries >= 1) + break; ++#if __FreeBSD_version >= 1000015 + vm_pageout_grow_cache(cTries, 0, VmPhysAddrHigh); ++#else ++ vm_contig_grow_cache(cTries, 0, VmPhysAddrHigh); ++#endif + cTries++; + } +- +- return pPages; + #else +- while (cTries <= 1) ++ while (1) + { + pPages = vm_phys_alloc_contig(cPages, 0, VmPhysAddrHigh, uAlignment, 0); +- if (pPages) ++ if (pPages || cTries >= 1) + break; + vm_contig_grow_cache(cTries, 0, VmPhysAddrHigh); + cTries++; +@@ -239,11 +246,8 @@ + + if (!pPages) + return pPages; +-#if __FreeBSD_version >= 1000030 +- VM_OBJECT_WLOCK(pObject); +-#else ++ + VM_OBJECT_LOCK(pObject); +-#endif + for (vm_pindex_t iPage = 0; iPage < cPages; iPage++) + { + vm_page_t pPage = pPages + iPage; +@@ -255,13 +259,9 @@ + atomic_add_int(&cnt.v_wire_count, 1); + } + } +-#if __FreeBSD_version >= 1000030 +- VM_OBJECT_WUNLOCK(pObject); +-#else + VM_OBJECT_UNLOCK(pObject); + #endif + return pPages; +-#endif + } + + static int rtR0MemObjFreeBSDPhysAllocHelper(vm_object_t pObject, u_long cPages, +@@ -291,11 +291,15 @@ while (iPage-- > 0) { pPage = vm_page_lookup(pObject, iPage); _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
State Changed From-To: open->closed It should be fixed with r348711. Thanks!
*** Bug 190184 has been marked as a duplicate of this bug. ***
Note that while this fixes the panic when you build virtualbox-ose on the target system, the fix is not ABI compatible and still panics on 9.3. Packages are built on the cluster for the oldest supported release on a branch. So currently they are built for 9.1. The package does not use the new vm_page_alloc_contig(). So when using the official package on 9.3 you will still run into the panic. This is not a big issue at this point as 9.1 and 9.2 both are EOL in 2 weeks. At that time package building will be switched to 9.3 and a proper package will be created.