Module Name: src Committed By: reinoud Date: Fri Sep 16 16:27:39 UTC 2011
Modified Files: src/sys/arch/usermode/usermode: pmap.c Log Message: Print out the memory information on verbose booting too, its too handy to have around without all the goo of debug printouts To generate a diff of this commit: cvs rdiff -u -r1.71 -r1.72 src/sys/arch/usermode/usermode/pmap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/usermode/usermode/pmap.c diff -u src/sys/arch/usermode/usermode/pmap.c:1.71 src/sys/arch/usermode/usermode/pmap.c:1.72 --- src/sys/arch/usermode/usermode/pmap.c:1.71 Thu Sep 15 17:44:13 2011 +++ src/sys/arch/usermode/usermode/pmap.c Fri Sep 16 16:27:39 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.71 2011/09/15 17:44:13 reinoud Exp $ */ +/* $NetBSD: pmap.c,v 1.72 2011/09/16 16:27:39 reinoud Exp $ */ /*- * Copyright (c) 2011 Reinoud Zandijk <rein...@netbsd.org> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.71 2011/09/15 17:44:13 reinoud Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.72 2011/09/16 16:27:39 reinoud Exp $"); #include "opt_memsize.h" #include "opt_kmempages.h" @@ -105,6 +105,7 @@ /* amount of physical memory */ int physmem; +int num_pv_entries = 0; #define SPARSE_MEMFILE @@ -173,19 +174,19 @@ kmem_ext_end = mpos; /* print summary */ - dprintf_debug("\nMemory summary\n"); - dprintf_debug("\tkmem_k_start\t%p\n", (void *) kmem_k_start); - dprintf_debug("\tkmem_k_end\t%p\n", (void *) kmem_k_end); - dprintf_debug("\tkmem_ext_start\t%p\n", (void *) kmem_ext_start); - dprintf_debug("\tkmem_ext_end\t%p\n", (void *) kmem_ext_end); - dprintf_debug("\tkmem_user_start\t%p\n", (void *) kmem_user_start); - dprintf_debug("\tkmem_user_end\t%p\n", (void *) kmem_user_end); - - dprintf_debug("\ttotmem_len\t%10d\n", (int) totmem_len); - dprintf_debug("\tkvmsize\t\t%10d\n", (int) KVMSIZE); - dprintf_debug("\tuser_len\t%10d\n", (int) user_len); + aprint_verbose("\nMemory summary\n"); + aprint_verbose("\tkmem_k_start\t%p\n", (void *) kmem_k_start); + aprint_verbose("\tkmem_k_end\t%p\n", (void *) kmem_k_end); + aprint_verbose("\tkmem_ext_start\t%p\n", (void *) kmem_ext_start); + aprint_verbose("\tkmem_ext_end\t%p\n", (void *) kmem_ext_end); + aprint_verbose("\tkmem_user_start\t%p\n", (void *) kmem_user_start); + aprint_verbose("\tkmem_user_end\t%p\n", (void *) kmem_user_end); + + aprint_verbose("\ttotmem_len\t%10d\n", (int) totmem_len); + aprint_verbose("\tkvmsize\t\t%10d\n", (int) KVMSIZE); + aprint_verbose("\tuser_len\t%10d\n", (int) user_len); - dprintf_debug("\n\n"); + aprint_verbose("\n\n"); #if 1 /* protect user memory UVM area (---) */ @@ -340,10 +341,10 @@ atop(free_end), VM_FREELIST_DEFAULT); - dprintf_debug("leaving pmap_bootstrap:\n"); - dprintf_debug("\t%"PRIu64" MB of physical pages left\n", + aprint_verbose("leaving pmap_bootstrap:\n"); + aprint_verbose("\t%"PRIu64" MB of physical pages left\n", (uint64_t) (free_end - (free_start + fpos))/1024/1024); - dprintf_debug("\t%"PRIu64" MB of kmem left\n", + aprint_verbose("\t%"PRIu64" MB of kmem left\n", (uint64_t) (kmem_ext_end - kmem_ext_cur_end)/1024/1024); setup_signal_handlers(); @@ -443,12 +444,14 @@ static struct pv_entry * pv_alloc(void) { + num_pv_entries++; return malloc(sizeof(struct pv_entry), M_VMPMAP, M_NOWAIT | M_ZERO); } static void pv_free(struct pv_entry *pv) { + num_pv_entries--; free(pv, M_VMPMAP); } @@ -1017,6 +1020,9 @@ dprintf_debug("pmap_zero_page: pa %p\n", (void *) pa); + if (pa & (PAGE_SIZE-1)) + panic("%s: unaligned address passed : %p\n", __func__, (void *) pa); + blob = thunk_mmap(NULL, PAGE_SIZE, THUNK_PROT_READ | THUNK_PROT_WRITE, THUNK_MAP_FILE | THUNK_MAP_SHARED, @@ -1034,6 +1040,11 @@ { char *sblob, *dblob; + if (src_pa & (PAGE_SIZE-1)) + panic("%s: unaligned address passed : %p\n", __func__, (void *) src_pa); + if (dst_pa & (PAGE_SIZE-1)) + panic("%s: unaligned address passed : %p\n", __func__, (void *) dst_pa); + dprintf_debug("pmap_copy_page: pa src %p, pa dst %p\n", (void *) src_pa, (void *) dst_pa);