svn commit: r229214 - user/attilio/vmcontention/sys/vm
Attilio Rao
attilio at FreeBSD.org
Sun Jan 1 21:46:16 UTC 2012
Author: attilio
Date: Sun Jan 1 21:46:16 2012
New Revision: 229214
URL: http://svn.freebsd.org/changeset/base/229214
Log:
Fix a spot missed during the last merge.
Modified:
user/attilio/vmcontention/sys/vm/vm_reserv.c
Modified: user/attilio/vmcontention/sys/vm/vm_reserv.c
==============================================================================
--- user/attilio/vmcontention/sys/vm/vm_reserv.c Sun Jan 1 21:43:14 2012 (r229213)
+++ user/attilio/vmcontention/sys/vm/vm_reserv.c Sun Jan 1 21:46:16 2012 (r229214)
@@ -495,33 +495,21 @@ vm_reserv_alloc_page(vm_object_t object,
/*
* Look for an existing reservation.
*/
- msucc = NULL;
- mpred = object->root;
- while (mpred != NULL) {
+ mpred = vm_radix_lookup_le(&object->rtree, pindex, VM_RADIX_BLACK);
+ if (mpred != NULL) {
KASSERT(mpred->pindex != pindex,
("vm_reserv_alloc_page: pindex already allocated"));
rv = vm_reserv_from_page(mpred);
if (rv->object == object && vm_reserv_has_pindex(rv, pindex))
goto found;
- else if (mpred->pindex < pindex) {
- if (msucc != NULL ||
- (msucc = TAILQ_NEXT(mpred, listq)) == NULL)
- break;
- KASSERT(msucc->pindex != pindex,
- ("vm_reserv_alloc_page: pindex already allocated"));
- rv = vm_reserv_from_page(msucc);
- if (rv->object == object &&
- vm_reserv_has_pindex(rv, pindex))
- goto found;
- else if (pindex < msucc->pindex)
- break;
- } else if (msucc == NULL) {
- msucc = mpred;
- mpred = TAILQ_PREV(msucc, pglist, listq);
- continue;
- }
- msucc = NULL;
- mpred = object->root = vm_page_splay(pindex, object->root);
+ }
+ msucc = vm_radix_lookup_ge(&object->rtree, pindex, VM_RADIX_BLACK);
+ if (msucc != NULL) {
+ KASSERT(msucc->pindex != pindex,
+ ("vm_reserv_alloc_page: pindex already allocated"));
+ rv = vm_reserv_from_page(msucc);
+ if (rv->object == object && vm_reserv_has_pindex(rv, pindex))
+ goto found;
}
/*
More information about the svn-src-user
mailing list