Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F111385539
D49203.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
6 KB
Referenced Files
None
Subscribers
None
D49203.diff
View Options
diff --git a/sys/vm/device_pager.c b/sys/vm/device_pager.c
--- a/sys/vm/device_pager.c
+++ b/sys/vm/device_pager.c
@@ -51,6 +51,7 @@
#include <vm/vm_object.h>
#include <vm/vm_page.h>
#include <vm/vm_pager.h>
+#include <vm/vm_radix.h>
#include <vm/vm_phys.h>
#include <vm/vm_radix.h>
#include <vm/uma.h>
@@ -267,7 +268,7 @@
struct pctrie_iter pages;
vm_page_iter_init(&pages, object);
- vm_page_iter_lookup(&pages, m->pindex);
+ vm_radix_iter_lookup(&pages, m->pindex);
cdev_mgtdev_pager_free_page(&pages, m);
} else if (object->type == OBJT_DEVICE)
dev_pager_free_page(object, m);
@@ -292,7 +293,7 @@
vm_page_iter_init(&pages, object);
VM_OBJECT_WLOCK(object);
retry:
- for (m = vm_page_iter_lookup_ge(&pages, 0); m != NULL;
+ for (m = vm_radix_iter_lookup_ge(&pages, 0); m != NULL;
m = vm_radix_iter_step(&pages)) {
if (!vm_page_busy_acquire(m, VM_ALLOC_WAITFAIL)) {
pctrie_iter_reset(&pages);
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
--- a/sys/vm/swap_pager.c
+++ b/sys/vm/swap_pager.c
@@ -1966,7 +1966,7 @@
* found page has pending operations, sleep and restart
* the scan.
*/
- m = vm_page_iter_lookup(&pages, blks.index + i);
+ m = vm_radix_iter_lookup(&pages, blks.index + i);
if (m != NULL && (m->oflags & VPO_SWAPINPROG) != 0) {
m->oflags |= VPO_SWAPSLEEP;
VM_OBJECT_SLEEP(object, &object->handle, PSWP,
@@ -2393,7 +2393,7 @@
continue;
swp_pager_update_freerange(&range, sb->d[i]);
if (freed != NULL) {
- m = vm_page_iter_lookup(&pages, blks.index + i);
+ m = vm_radix_iter_lookup(&pages, blks.index + i);
if (m == NULL || vm_page_none_valid(m))
fc++;
}
@@ -2511,7 +2511,7 @@
VM_OBJECT_ASSERT_RLOCKED(object);
vm_page_iter_init(&pages, object);
- m = vm_page_iter_lookup_ge(&pages, pindex);
+ m = vm_radix_iter_lookup_ge(&pages, pindex);
if (m != NULL && pages.index == pindex && vm_page_any_valid(m))
return (pages.index);
swblk_iter_init_only(&blks, object);
@@ -2546,7 +2546,7 @@
VM_OBJECT_ASSERT_RLOCKED(object);
vm_page_iter_init(&pages, object);
swblk_iter_init_only(&blks, object);
- while (((m = vm_page_iter_lookup(&pages, pindex)) != NULL &&
+ while (((m = vm_radix_iter_lookup(&pages, pindex)) != NULL &&
vm_page_any_valid(m)) ||
((sb = swblk_iter_lookup(&blks, pindex)) != NULL &&
sb->d[pindex % SWAP_META_PAGES] != SWAPBLK_NONE))
@@ -2591,7 +2591,7 @@
pv = ps = pi = backing_offset_index - 1;
for (;;) {
if (pi == pv) {
- p = vm_page_iter_lookup_ge(&backing_pages, pv + 1);
+ p = vm_radix_iter_lookup_ge(&backing_pages, pv + 1);
pv = p != NULL ? p->pindex : backing_object->size;
}
if (pi == ps)
@@ -2633,7 +2633,7 @@
* object and we might as well give up now.
*/
new_pindex = pi - backing_offset_index;
- pp = vm_page_iter_lookup(&pages, new_pindex);
+ pp = vm_radix_iter_lookup(&pages, new_pindex);
/*
* The valid check here is stable due to object lock being
diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c
--- a/sys/vm/vm_kern.c
+++ b/sys/vm/vm_kern.c
@@ -650,14 +650,14 @@
end = offset + size;
VM_OBJECT_WLOCK(object);
vm_page_iter_init(&pages, object);
- m = vm_page_iter_lookup(&pages, atop(offset));
+ m = vm_radix_iter_lookup(&pages, atop(offset));
domain = vm_page_domain(m);
if (__predict_true((m->oflags & VPO_KMEM_EXEC) == 0))
arena = vm_dom[domain].vmd_kernel_arena;
else
arena = vm_dom[domain].vmd_kernel_rwx_arena;
for (; offset < end; offset += PAGE_SIZE,
- m = vm_page_iter_lookup(&pages, atop(offset))) {
+ m = vm_radix_iter_lookup(&pages, atop(offset))) {
vm_page_xbusy_claim(m);
vm_page_unwire_noq(m);
vm_page_iter_free(&pages, m);
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -1577,7 +1577,7 @@
vm_page_iter_limit_init(&pages, orig_object, offidxstart + size);
retry:
pctrie_iter_reset(&pages);
- for (m = vm_page_iter_lookup_ge(&pages, offidxstart); m != NULL;
+ for (m = vm_radix_iter_lookup_ge(&pages, offidxstart); m != NULL;
m = vm_radix_iter_step(&pages)) {
/*
* We must wait for pending I/O to complete before we can
@@ -1681,7 +1681,7 @@
}
VM_OBJECT_WLOCK(backing_object);
vm_page_iter_init(pages, backing_object);
- return (vm_page_iter_lookup_ge(pages, 0));
+ return (vm_radix_iter_lookup_ge(pages, 0));
}
static void
@@ -1702,7 +1702,7 @@
* Our scan
*/
vm_page_iter_init(&pages, backing_object);
- for (p = vm_page_iter_lookup_ge(&pages, 0); p != NULL; p = next) {
+ for (p = vm_radix_iter_lookup_ge(&pages, 0); p != NULL; p = next) {
/*
* Check for busy page
*/
@@ -1997,7 +1997,7 @@
vm_page_iter_limit_init(&pages, object, end);
again:
pctrie_iter_reset(&pages);
- for (p = vm_page_iter_lookup_ge(&pages, start); p != NULL;
+ for (p = vm_radix_iter_lookup_ge(&pages, start); p != NULL;
p = vm_radix_iter_step(&pages)) {
/*
* Skip invalid pages if asked to do so. Try to avoid acquiring
diff --git a/sys/vm/vm_page.h b/sys/vm/vm_page.h
--- a/sys/vm/vm_page.h
+++ b/sys/vm/vm_page.h
@@ -645,7 +645,6 @@
void vm_page_dequeue(vm_page_t m);
void vm_page_dequeue_deferred(vm_page_t m);
vm_page_t vm_page_find_least(vm_object_t, vm_pindex_t);
-vm_page_t vm_page_iter_lookup_ge(struct pctrie_iter *, vm_pindex_t);
void vm_page_free_invalid(vm_page_t);
vm_page_t vm_page_getfake(vm_paddr_t paddr, vm_memattr_t memattr);
void vm_page_initfake(vm_page_t m, vm_paddr_t paddr, vm_memattr_t memattr);
@@ -656,7 +655,6 @@
void vm_page_iter_free(struct pctrie_iter *pages, vm_page_t m);
void vm_page_iter_init(struct pctrie_iter *, vm_object_t);
void vm_page_iter_limit_init(struct pctrie_iter *, vm_object_t, vm_pindex_t);
-vm_page_t vm_page_iter_lookup(struct pctrie_iter *, vm_pindex_t);
bool vm_page_iter_remove(struct pctrie_iter *pages, vm_page_t m);
bool vm_page_iter_rename(struct pctrie_iter *old_pages, vm_page_t m,
vm_object_t new_object, vm_pindex_t new_pindex);
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -1836,21 +1836,6 @@
vm_radix_iter_limit_init(pages, &object->rtree, limit);
}
-/*
- * vm_page_iter_lookup:
- *
- * Returns the page associated with the object/offset pair specified, and
- * stores the path to its position; if none is found, NULL is returned.
- *
- * The iter pctrie must be locked.
- */
-vm_page_t
-vm_page_iter_lookup(struct pctrie_iter *pages, vm_pindex_t pindex)
-{
-
- return (vm_radix_iter_lookup(pages, pindex));
-}
-
/*
* vm_page_lookup_unlocked:
*
@@ -1935,22 +1920,6 @@
return (m);
}
-/*
- * vm_page_iter_lookup_ge:
- *
- * Returns the page associated with the object with least pindex
- * greater than or equal to the parameter pindex, or NULL. Initializes the
- * iterator to point to that page.
- *
- * The iter pctrie must be locked.
- */
-vm_page_t
-vm_page_iter_lookup_ge(struct pctrie_iter *pages, vm_pindex_t pindex)
-{
-
- return (vm_radix_iter_lookup_ge(pages, pindex));
-}
-
/*
* Returns the given page's successor (by pindex) within the object if it is
* resident; if none is found, NULL is returned.
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Mar 4, 3:15 AM (6 h, 59 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16959319
Default Alt Text
D49203.diff (6 KB)
Attached To
Mode
D49203: vm_page: drop page_iter_lookup
Attached
Detach File
Event Timeline
Log In to Comment