On Thu, 11 Aug 2011 15:44:12 -0400, Jung-uk Kim wrote: > On Thursday 11 August 2011 02:08 pm, Michael Butler wrote: >> /usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-4.0.12_OSE >>/out/freebsd.x86/release/bin/src/vboxdrv/r0drv/freebsd/memobj-r0drv- >>freebsd.c: In function 'rtR0MemObjFreeBSDPhysPageInit': >> >> /usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-4.0.12_OSE >>/out/freebsd.x86/release/bin/src/vboxdrv/r0drv/freebsd/memobj-r0drv- >>freebsd.c:396: error: 'PG_UNMANAGED' undeclared (first use in this >> function) >> >> Should "pPage->flags = PG_UNMANAGED" now be replaced by some page >> lock/unlock function which applies "pPage->oflags = VPO_UNMANAGED"? > > I am not sure if it is really correct but this patch worked for me: > > --- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig > +++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c > @@ -392,8 +392,13 @@ > pPage->wire_count = 1; > pPage->pindex = iPage; > pPage->act_count = 0; > +#if __FreeBSD_version < 900000 > pPage->oflags = 0; > pPage->flags = PG_UNMANAGED; > +#else > + pPage->oflags = VPO_UNMANAGED; > + pPage->flags = 0; > +#endif > atomic_add_int(&cnt.v_wire_count, 1); > }
I have started the same way and then talked to kib. He told me that vm_phys_alloc_contig() already initializes the page as unmanaged so this stuff should be a noop in the kmod. I have not runtime tested it myself though so i would welcome some feedback on that. http://home.bluelife.at/patches/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd.c --- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2011-04-05 14:34:09.000000000 +0200 +++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2011-08-11 15:06:46.000000000 +0200 @@ -394,9 +394,13 @@ pPage->wire_count = 1; pPage->pindex = iPage; pPage->act_count = 0; - pPage->oflags = 0; - pPage->flags = PG_UNMANAGED; atomic_add_int(&cnt.v_wire_count, 1); + +#if __FreeBSD_version >= 900040 + Assert(pPage->oflags & VPO_UNMANAGED != 0); +#else + Assert(pPage->flags & PG_UNMANAGED != 0); +#endif } -- Bernhard Froehlich http://www.bluelife.at/ _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[email protected]"
