From owner-svn-src-user@FreeBSD.ORG  Sun Feb 24 16:10:43 2013
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by hub.freebsd.org (Postfix) with ESMTP id CB043A3C;
 Sun, 24 Feb 2013 16:10:43 +0000 (UTC)
 (envelope-from attilio@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org
 [IPv6:2001:1900:2254:2068::e6a:0])
 by mx1.freebsd.org (Postfix) with ESMTP id B3C2C826;
 Sun, 24 Feb 2013 16:10:43 +0000 (UTC)
Received: from svn.freebsd.org ([127.0.1.70])
 by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r1OGAhY4097036;
 Sun, 24 Feb 2013 16:10:43 GMT (envelope-from attilio@svn.freebsd.org)
Received: (from attilio@localhost)
 by svn.freebsd.org (8.14.5/8.14.5/Submit) id r1OGAhsR097035;
 Sun, 24 Feb 2013 16:10:43 GMT (envelope-from attilio@svn.freebsd.org)
Message-Id: <201302241610.r1OGAhsR097035@svn.freebsd.org>
From: Attilio Rao <attilio@FreeBSD.org>
Date: Sun, 24 Feb 2013 16:10:43 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: svn commit: r247223 - user/attilio/vmc-playground/sys/vm
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 24 Feb 2013 16:10:43 -0000

Author: attilio
Date: Sun Feb 24 16:10:43 2013
New Revision: 247223
URL: http://svnweb.freebsd.org/changeset/base/247223

Log:
  Do not call vm_radix_lookup_ge() in the reservation system unless
  it is absolutely necessary.
  
  Sponsored by:	EMC / Isilon storage division
  Submitted by:	alc

Modified:
  user/attilio/vmc-playground/sys/vm/vm_reserv.c

Modified: user/attilio/vmc-playground/sys/vm/vm_reserv.c
==============================================================================
--- user/attilio/vmc-playground/sys/vm/vm_reserv.c	Sun Feb 24 16:08:37 2013	(r247222)
+++ user/attilio/vmc-playground/sys/vm/vm_reserv.c	Sun Feb 24 16:10:43 2013	(r247223)
@@ -349,8 +349,9 @@ vm_reserv_alloc_contig(vm_object_t objec
 		rv = vm_reserv_from_page(mpred);
 		if (rv->object == object && vm_reserv_has_pindex(rv, pindex))
 			goto found;
-	}
-	msucc = vm_radix_lookup_ge(&object->rtree, pindex);
+		msucc = TAILQ_NEXT(mpred, listq);
+	} else
+		msucc = vm_radix_lookup_ge(&object->rtree, pindex);
 	if (msucc != NULL) {
 		KASSERT(msucc->pindex > pindex,
 		    ("vm_reserv_alloc_page: pindex already allocated"));
@@ -503,8 +504,9 @@ vm_reserv_alloc_page(vm_object_t object,
 		rv = vm_reserv_from_page(mpred);
 		if (rv->object == object && vm_reserv_has_pindex(rv, pindex))
 			goto found;
-	}
-	msucc = vm_radix_lookup_ge(&object->rtree, pindex);
+		msucc = TAILQ_NEXT(mpred, listq);
+	} else
+		msucc = vm_radix_lookup_ge(&object->rtree, pindex);
 	if (msucc != NULL) {
 		KASSERT(msucc->pindex > pindex,
 		    ("vm_reserv_alloc_page: pindex already allocated"));