Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Mar 2014 18:20:01 GMT
From:      dfilter@FreeBSD.ORG (dfilter service)
To:        vbox@FreeBSD.org
Subject:   Re: ports/187580: commit references a PR
Message-ID:  <201403201820.s2KIK1k3065662@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/187580; it has been noted by GNATS.

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/187580: commit references a PR
Date: Thu, 20 Mar 2014 18:11:16 +0000 (UTC)

 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"
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201403201820.s2KIK1k3065662>