PERFORCE change 100338 for review
Kip Macy
kmacy at FreeBSD.org
Fri Jun 30 06:23:09 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=100338
Change 100338 by kmacy at kmacy_storage:sun4v_work_stable on 2006/06/30 06:22:25
add VM init spam to track down problem with booting on jb's 32GB T2000
Affected files ...
.. //depot/projects/kmacy_sun4v_stable/src/sys/vm/vm_init.c#2 edit
.. //depot/projects/kmacy_sun4v_stable/src/sys/vm/vm_map.c#3 edit
.. //depot/projects/kmacy_sun4v_stable/src/sys/vm/vm_page.c#3 edit
Differences ...
==== //depot/projects/kmacy_sun4v_stable/src/sys/vm/vm_init.c#2 (text+ko) ====
@@ -114,17 +114,24 @@
* Initializes resident memory structures. From here on, all physical
* memory is accounted for, and we use only virtual addresses.
*/
+ printf("set page size\n");
vm_set_page_size();
+ printf("virtual_avail=0x%lx\n", virtual_avail);
virtual_avail = vm_page_startup(virtual_avail);
-
+ printf("post-vm_page_startup: virtual_avail=0x%lx\n", virtual_avail);
/*
* Initialize other VM packages
*/
vm_object_init();
+ printf("vm_object_inited\n");
vm_map_startup();
+ printf("vm_map_startup\n");
kmem_init(virtual_avail, virtual_end);
+ printf("kmem_inited\n");
pmap_init();
+ printf("pmap_init\n");
vm_pager_init();
+ printf("vm_pager_init\n");
}
void
==== //depot/projects/kmacy_sun4v_stable/src/sys/vm/vm_map.c#3 (text+ko) ====
@@ -159,6 +159,7 @@
vm_map_startup(void)
{
mtx_init(&map_sleep_mtx, "vm map sleep mutex", NULL, MTX_DEF);
+ printf("uma_zcreate\n");
mapzone = uma_zcreate("MAP", sizeof(struct vm_map), NULL,
#ifdef INVARIANTS
vm_map_zdtor,
@@ -166,11 +167,15 @@
NULL,
#endif
vm_map_zinit, vm_map_zfini, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+ printf("uma_prealloc\n");
uma_prealloc(mapzone, MAX_KMAP);
+ printf("KMAP ENTRY\n");
kmapentzone = uma_zcreate("KMAP ENTRY", sizeof(struct vm_map_entry),
NULL, NULL, NULL, NULL, UMA_ALIGN_PTR,
UMA_ZONE_MTXCLASS | UMA_ZONE_VM);
+ printf("prealloc kmapentzone\n");
uma_prealloc(kmapentzone, MAX_KMAPENT);
+ printf("uma_zcreate MAP ENTRY\n");
mapentzone = uma_zcreate("MAP ENTRY", sizeof(struct vm_map_entry),
NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
}
==== //depot/projects/kmacy_sun4v_stable/src/sys/vm/vm_page.c#3 (text+ko) ====
@@ -222,6 +222,7 @@
nblocks = 0;
vaddr = round_page(vaddr);
+ printf("checking physavail\n");
for (i = 0; phys_avail[i + 1]; i += 2) {
phys_avail[i] = round_page(phys_avail[i]);
phys_avail[i + 1] = trunc_page(phys_avail[i + 1]);
@@ -252,6 +253,7 @@
* Initialize the queue headers for the free queue, the active queue
* and the inactive queue.
*/
+ printf("vm_pageq_init\n");
vm_pageq_init();
/*
@@ -260,9 +262,12 @@
*/
new_end = end - (boot_pages * UMA_SLAB_SIZE);
new_end = trunc_page(new_end);
+ printf("vm_page_startup pmap_map\n");
mapped = pmap_map(&vaddr, new_end, end,
VM_PROT_READ | VM_PROT_WRITE);
+ printf("bzero\n");
bzero((void *)mapped, end - new_end);
+ printf("uma_startup\n");
uma_startup((void *)mapped, boot_pages);
#if defined(__amd64__) || defined(__i386__)
@@ -333,6 +338,7 @@
*/
cnt.v_page_count = 0;
cnt.v_free_count = 0;
+ printf("checking vm.blacklist\n");
list = getenv("vm.blacklist");
for (i = 0; phys_avail[i + 1] && npages > 0; i += 2) {
pa = phys_avail[i];
@@ -347,6 +353,7 @@
pa += PAGE_SIZE;
}
}
+ printf("passed vm.blacklist check\n");
freeenv(list);
return (vaddr);
}
More information about the p4-projects
mailing list