Page MenuHomeFreeBSD

D49947.id154076.diff
No OneTemporary

D49947.id154076.diff

Index: sys/vm/vm_object.c
===================================================================
--- sys/vm/vm_object.c
+++ sys/vm/vm_object.c
@@ -2755,6 +2755,7 @@
*/
DB_SHOW_COMMAND(object, vm_object_print_static)
{
+ struct pctrie_iter pages;
/* XXX convert args. */
vm_object_t object = (vm_object_t)addr;
boolean_t full = have_addr;
@@ -2785,7 +2786,8 @@
db_indent += 2;
count = 0;
- TAILQ_FOREACH(p, &object->memq, listq) {
+ vm_page_iter_init(&pages, object);
+ VM_RADIX_FOREACH(p, &pages) {
if (count == 0)
db_iprintf("memory:=");
else if (count == 6) {
@@ -2823,49 +2825,38 @@
DB_SHOW_COMMAND_FLAGS(vmopag, vm_object_print_pages, DB_CMD_MEMSAFE)
{
+ struct pctrie_iter pages;
vm_object_t object;
- vm_pindex_t fidx;
- vm_paddr_t pa;
- vm_page_t m, prev_m;
+ vm_page_t m, start_m;
int rcount;
TAILQ_FOREACH(object, &vm_object_list, object_list) {
db_printf("new object: %p\n", (void *)object);
if (db_pager_quit)
return;
-
- rcount = 0;
- fidx = 0;
- pa = -1;
- TAILQ_FOREACH(m, &object->memq, listq) {
- if ((prev_m = TAILQ_PREV(m, pglist, listq)) != NULL &&
- prev_m->pindex + 1 != m->pindex) {
- if (rcount) {
- db_printf(" index(%ld)run(%d)pa(0x%lx)\n",
- (long)fidx, rcount, (long)pa);
- if (db_pager_quit)
- return;
- rcount = 0;
- }
- }
- if (rcount &&
- (VM_PAGE_TO_PHYS(m) == pa + rcount * PAGE_SIZE)) {
- ++rcount;
- continue;
- }
- if (rcount) {
+ start_m = NULL;
+ vm_page_iter_init(&pages, object);
+ VM_RADIX_FOREACH(m, &pages) {
+ if (start_m == NULL) {
+ start_m = m;
+ rcount = 0;
+ } else if (start_m->pindex + rcount != m->pindex ||
+ VM_PAGE_TO_PHYS(start_m) + rcount * PAGE_SIZE !=
+ VM_PAGE_TO_PHYS(m)) {
db_printf(" index(%ld)run(%d)pa(0x%lx)\n",
- (long)fidx, rcount, (long)pa);
+ (long)start_m->pindex, rcount,
+ (long)VM_PAGE_TO_PHYS(start_m));
if (db_pager_quit)
return;
+ start_m = m;
+ rcount = 0;
}
- fidx = m->pindex;
- pa = VM_PAGE_TO_PHYS(m);
- rcount = 1;
+ rcount++;
}
- if (rcount) {
+ if (start_m != NULL) {
db_printf(" index(%ld)run(%d)pa(0x%lx)\n",
- (long)fidx, rcount, (long)pa);
+ (long)start_m->pindex, rcount,
+ (long)VM_PAGE_TO_PHYS(start_m));
if (db_pager_quit)
return;
}

File Metadata

Mime Type
text/plain
Expires
Thu, Apr 9, 10:29 AM (12 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31152289
Default Alt Text
D49947.id154076.diff (2 KB)

Event Timeline