Module Name: src Committed By: reinoud Date: Tue Jan 3 12:05:01 UTC 2012
Modified Files: src/sys/arch/usermode/dev: cpu.c ld_thunkbus.c src/sys/arch/usermode/include: thunk.h src/sys/arch/usermode/usermode: pmap.c syscall.c thunk.c trap.c Log Message: Rename the debug printf's to use a thunk_ prefix to avoid confusion. To generate a diff of this commit: cvs rdiff -u -r1.57 -r1.58 src/sys/arch/usermode/dev/cpu.c cvs rdiff -u -r1.24 -r1.25 src/sys/arch/usermode/dev/ld_thunkbus.c cvs rdiff -u -r1.54 -r1.55 src/sys/arch/usermode/include/thunk.h cvs rdiff -u -r1.89 -r1.90 src/sys/arch/usermode/usermode/pmap.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/usermode/usermode/syscall.c cvs rdiff -u -r1.71 -r1.72 src/sys/arch/usermode/usermode/thunk.c cvs rdiff -u -r1.50 -r1.51 src/sys/arch/usermode/usermode/trap.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/dev/cpu.c diff -u src/sys/arch/usermode/dev/cpu.c:1.57 src/sys/arch/usermode/dev/cpu.c:1.58 --- src/sys/arch/usermode/dev/cpu.c:1.57 Tue Dec 27 14:55:31 2011 +++ src/sys/arch/usermode/dev/cpu.c Tue Jan 3 12:05:01 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.c,v 1.57 2011/12/27 14:55:31 reinoud Exp $ */ +/* $NetBSD: cpu.c,v 1.58 2012/01/03 12:05:01 reinoud Exp $ */ /*- * Copyright (c) 2007 Jared D. McNeill <jmcne...@invisible.ca> @@ -30,7 +30,7 @@ #include "opt_hz.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.57 2011/12/27 14:55:31 reinoud Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.58 2012/01/03 12:05:01 reinoud Exp $"); #include <sys/param.h> #include <sys/conf.h> @@ -164,7 +164,7 @@ cpu_switchto(lwp_t *oldlwp, lwp_t *newlw struct cpu_info *ci = curcpu(); #ifdef CPU_DEBUG - dprintf_debug("cpu_switchto [%s,pid=%d,lid=%d] -> [%s,pid=%d,lid=%d]\n", + thunk_printf_debug("cpu_switchto [%s,pid=%d,lid=%d] -> [%s,pid=%d,lid=%d]\n", oldlwp ? oldlwp->l_name : "none", oldlwp ? oldlwp->l_proc->p_pid : -1, oldlwp ? oldlwp->l_lid : -1, @@ -172,14 +172,14 @@ cpu_switchto(lwp_t *oldlwp, lwp_t *newlw newlwp ? newlwp->l_proc->p_pid : -1, newlwp ? newlwp->l_lid : -1); if (oldpcb) { - dprintf_debug(" oldpcb uc_link=%p, uc_stack.ss_sp=%p, " + thunk_printf_debug(" oldpcb uc_link=%p, uc_stack.ss_sp=%p, " "uc_stack.ss_size=%d\n", oldpcb->pcb_ucp.uc_link, oldpcb->pcb_ucp.uc_stack.ss_sp, (int)oldpcb->pcb_ucp.uc_stack.ss_size); } if (newpcb) { - dprintf_debug(" newpcb uc_link=%p, uc_stack.ss_sp=%p, " + thunk_printf_debug(" newpcb uc_link=%p, uc_stack.ss_sp=%p, " "uc_stack.ss_size=%d\n", newpcb->pcb_ucp.uc_link, newpcb->pcb_ucp.uc_stack.ss_sp, @@ -203,7 +203,7 @@ cpu_switchto(lwp_t *oldlwp, lwp_t *newlw } #ifdef CPU_DEBUG - dprintf_debug("cpu_switchto: returning %p (was %p)\n", ci->ci_stash, oldlwp); + thunk_printf_debug("cpu_switchto: returning %p (was %p)\n", ci->ci_stash, oldlwp); #endif return ci->ci_stash; } @@ -212,7 +212,7 @@ void cpu_dumpconf(void) { #ifdef CPU_DEBUG - dprintf_debug("cpu_dumpconf\n"); + thunk_printf_debug("cpu_dumpconf\n"); #endif } @@ -228,7 +228,7 @@ cpu_getmcontext(struct lwp *l, mcontext_ ucontext_t *ucp = &pcb->pcb_userret_ucp; #ifdef CPU_DEBUG - dprintf_debug("cpu_getmcontext\n"); + thunk_printf_debug("cpu_getmcontext\n"); #endif memcpy(mcp, &ucp->uc_mcontext, sizeof(mcontext_t)); return; @@ -241,7 +241,7 @@ cpu_setmcontext(struct lwp *l, const mco ucontext_t *ucp = &pcb->pcb_userret_ucp; #ifdef CPU_DEBUG - dprintf_debug("cpu_setmcontext\n"); + thunk_printf_debug("cpu_setmcontext\n"); #endif memcpy(&ucp->uc_mcontext, mcp, sizeof(mcontext_t)); return 0; @@ -262,7 +262,7 @@ void cpu_lwp_free(struct lwp *l, int proc) { #ifdef CPU_DEBUG - dprintf_debug("cpu_lwp_free (dummy)\n"); + thunk_printf_debug("cpu_lwp_free (dummy)\n"); #endif } @@ -272,7 +272,7 @@ cpu_lwp_free2(struct lwp *l) struct pcb *pcb = lwp_getpcb(l); #ifdef CPU_DEBUG - dprintf_debug("cpu_lwp_free2\n"); + thunk_printf_debug("cpu_lwp_free2\n"); #endif if (pcb == NULL) @@ -301,7 +301,7 @@ static void cpu_lwp_trampoline(ucontext_t *ucp, void (*func)(void *), void *arg) { #ifdef CPU_DEBUG - dprintf_debug("cpu_lwp_trampoline called with func %p, arg %p\n", (void *) func, arg); + thunk_printf_debug("cpu_lwp_trampoline called with func %p, arg %p\n", (void *) func, arg); #endif /* init lwp */ lwp_startup(curcpu()->ci_stash, curlwp); @@ -320,7 +320,7 @@ cpu_lwp_fork(struct lwp *l1, struct lwp void *stack_ucp, *stack_syscall_ucp, *stack_pagefault_ucp; #ifdef CPU_DEBUG - dprintf_debug("cpu_lwp_fork [%s/%p] -> [%s/%p] stack=%p stacksize=%d\n", + thunk_printf_debug("cpu_lwp_fork [%s/%p] -> [%s/%p] stack=%p stacksize=%d\n", l1 ? l1->l_name : "none", l1, l2 ? l2->l_name : "none", l2, stack, (int)stacksize); @@ -338,6 +338,10 @@ cpu_lwp_fork(struct lwp *l1, struct lwp stack_pagefault_ucp = malloc(stacksize, M_TEMP, M_NOWAIT); pcb2->pcb_needfree = true; + KASSERT(stack_ucp); + KASSERT(stack_syscall_ucp); + KASSERT(stack_pagefault_ucp); + if (thunk_getcontext(&pcb2->pcb_ucp)) panic("getcontext failed"); Index: src/sys/arch/usermode/dev/ld_thunkbus.c diff -u src/sys/arch/usermode/dev/ld_thunkbus.c:1.24 src/sys/arch/usermode/dev/ld_thunkbus.c:1.25 --- src/sys/arch/usermode/dev/ld_thunkbus.c:1.24 Wed Dec 14 21:22:24 2011 +++ src/sys/arch/usermode/dev/ld_thunkbus.c Tue Jan 3 12:05:01 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ld_thunkbus.c,v 1.24 2011/12/14 21:22:24 jmcneill Exp $ */ +/* $NetBSD: ld_thunkbus.c,v 1.25 2012/01/03 12:05:01 reinoud Exp $ */ /*- * Copyright (c) 2011 Jared D. McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ld_thunkbus.c,v 1.24 2011/12/14 21:22:24 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ld_thunkbus.c,v 1.25 2012/01/03 12:05:01 reinoud Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -182,9 +182,9 @@ ld_thunkbus_complete(void *arg) } done: - dprintf_debug("\tfin\n"); + thunk_printf_debug("\tfin\n"); if (bp->b_error) - dprintf_debug("error!\n"); + thunk_printf_debug("error!\n"); sc->busy = false; lddone(&sc->sc_ld, bp); Index: src/sys/arch/usermode/include/thunk.h diff -u src/sys/arch/usermode/include/thunk.h:1.54 src/sys/arch/usermode/include/thunk.h:1.55 --- src/sys/arch/usermode/include/thunk.h:1.54 Sat Dec 31 21:31:15 2011 +++ src/sys/arch/usermode/include/thunk.h Tue Jan 3 12:05:01 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: thunk.h,v 1.54 2011/12/31 21:31:15 christos Exp $ */ +/* $NetBSD: thunk.h,v 1.55 2012/01/03 12:05:01 reinoud Exp $ */ /*- * Copyright (c) 2011 Jared D. McNeill <jmcne...@invisible.ca> @@ -70,7 +70,8 @@ struct thunk_termios { struct aiocb; -void dprintf_debug(const char *fmt, ...) __attribute__((__format__(__printf__, 1, 2))); +void thunk_printf_debug(const char *fmt, ...) __attribute__((__format__(__printf__, 1, 2))); +void thunk_printf(const char *fmt, ...) __attribute__((__format__(__printf__, 1, 2))); int thunk_setitimer(int, const struct thunk_itimerval *, struct thunk_itimerval *); int thunk_gettimeofday(struct thunk_timeval *, void *); Index: src/sys/arch/usermode/usermode/pmap.c diff -u src/sys/arch/usermode/usermode/pmap.c:1.89 src/sys/arch/usermode/usermode/pmap.c:1.90 --- src/sys/arch/usermode/usermode/pmap.c:1.89 Mon Jan 2 09:49:12 2012 +++ src/sys/arch/usermode/usermode/pmap.c Tue Jan 3 12:05:00 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.89 2012/01/02 09:49:12 reinoud Exp $ */ +/* $NetBSD: pmap.c,v 1.90 2012/01/03 12:05:00 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.89 2012/01/02 09:49:12 reinoud Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.90 2012/01/03 12:05:00 reinoud Exp $"); #include "opt_memsize.h" #include "opt_kmempages.h" @@ -154,13 +154,13 @@ pmap_bootstrap(void) vm_min_addr = thunk_get_vm_min_address(); vm_min_addr = vm_min_addr < PAGE_SIZE ? PAGE_SIZE : vm_min_addr; - dprintf_debug("Information retrieved from system and elf image\n"); - dprintf_debug("min VM address at %p\n", (void *) vm_min_addr); - dprintf_debug("start kernel at %p\n", _start); - dprintf_debug(" end kernel at %p\n", &etext); - dprintf_debug(" end of init. data at %p\n", &edata); - dprintf_debug("1st end of data at %p\n", &end); - dprintf_debug("CUR end data at %p\n", thunk_sbrk(0)); + thunk_printf_debug("Information retrieved from system and elf image\n"); + thunk_printf_debug("min VM address at %p\n", (void *) vm_min_addr); + thunk_printf_debug("start kernel at %p\n", _start); + thunk_printf_debug(" end kernel at %p\n", &etext); + thunk_printf_debug(" end of init. data at %p\n", &edata); + thunk_printf_debug("1st end of data at %p\n", &end); + thunk_printf_debug("CUR end data at %p\n", thunk_sbrk(0)); /* calculate kernel section (R-X) */ kmem_k_start = (vaddr_t) PAGE_SIZE * (atop(_start) ); @@ -217,7 +217,7 @@ pmap_bootstrap(void) panic("pmap_bootstrap: kvm uvm space protection " "failed (%d)\n", thunk_geterrno()); - dprintf_debug("Creating memory mapped backend\n"); + thunk_printf_debug("Creating memory mapped backend\n"); /* create memory file since mmap/maccess only can be on files */ strlcpy(mem_name, "/tmp/netbsd.XXXXXX", sizeof(mem_name)); @@ -274,14 +274,14 @@ pmap_bootstrap(void) /* calculate pv table size */ phys_npages = (free_end - free_start) / PAGE_SIZE; pv_table_size = round_page(phys_npages * sizeof(struct pv_entry)); - dprintf_debug("claiming %"PRIu64" KB of pv_table for " + thunk_printf_debug("claiming %"PRIu64" KB of pv_table for " "%"PRIdPTR" pages of physical memory\n", (uint64_t) pv_table_size/1024, (uintptr_t) phys_npages); /* calculate number of pmap entries needed for a complete map */ pm_nentries = (VM_MAX_KERNEL_ADDRESS - VM_MIN_ADDRESS) / PAGE_SIZE; pm_entries_size = round_page(pm_nentries * sizeof(struct pv_entry *)); - dprintf_debug("tlb va->pa lookup table is %"PRIu64" KB for " + thunk_printf_debug("tlb va->pa lookup table is %"PRIu64" KB for " "%d logical pages\n", pm_entries_size/1024, pm_nentries); /* calculate how big the l1 tables are going to be */ @@ -300,7 +300,7 @@ pmap_bootstrap(void) memset(pv_table, 0, pv_table_size); /* test and clear */ - dprintf_debug("pv_table initialiased correctly, mmap works\n"); + thunk_printf_debug("pv_table initialiased correctly, mmap works\n"); /* advance */ kmem_ext_cur_start += pv_table_size; @@ -318,7 +318,7 @@ pmap_bootstrap(void) memset(tlb, 0, pm_entries_size); /* test and clear */ - dprintf_debug("kernel tlb entries initialized correctly\n"); + thunk_printf_debug("kernel tlb entries initialized correctly\n"); /* advance */ kmem_ext_cur_start += pm_entries_size; @@ -341,7 +341,7 @@ pmap_bootstrap(void) memset(pmap->pm_l1, 0, pm_l1_size); /* test and clear */ - dprintf_debug("kernel pmap l1 table initialiased correctly\n"); + thunk_printf_debug("kernel pmap l1 table initialiased correctly\n"); /* advance for l1 tables */ kmem_ext_cur_start += round_page(pm_l1_size); @@ -379,25 +379,25 @@ pmap_bootstrap(void) va = (vaddr_t) pv_table + pg; pmap_kenter_pa(va, pa, VM_PROT_READ | VM_PROT_WRITE, 0); } - dprintf_debug("pv_table mem added to the kernel pmap\n"); + thunk_printf_debug("pv_table mem added to the kernel pmap\n"); for (pg = 0; pg < pm_entries_size; pg += PAGE_SIZE) { pa = tlb_fpos + pg; va = (vaddr_t) tlb + pg; pmap_kenter_pa(va, pa, VM_PROT_READ | VM_PROT_WRITE, 0); } - dprintf_debug("kernel tlb entries mem added to the kernel pmap\n"); + thunk_printf_debug("kernel tlb entries mem added to the kernel pmap\n"); for (pg = 0; pg < pm_l1_size; pg += PAGE_SIZE) { pa = pm_l1_fpos + pg; va = (vaddr_t) pmap->pm_l1 + pg; pmap_kenter_pa(va, pa, VM_PROT_READ | VM_PROT_WRITE, 0); } - dprintf_debug("kernel pmap l1 mem added to the kernel pmap\n"); + thunk_printf_debug("kernel pmap l1 mem added to the kernel pmap\n"); for (pg = 0; pg < pm_entries_size; pg += PAGE_SIZE) { pa = pm_fpos + pg; va = (vaddr_t) kernel_pm_entries + pg; pmap_kenter_pa(va, pa, VM_PROT_READ | VM_PROT_WRITE, 0); } - dprintf_debug("kernel pmap entries mem added to the kernel pmap\n"); + thunk_printf_debug("kernel pmap entries mem added to the kernel pmap\n"); /* add file space to uvm's FREELIST */ /* XXX really from 0? or from fpos to have better stats */ @@ -456,7 +456,7 @@ pmap_create(void) pmap_initialised = 1; } - dprintf_debug("pmap_create\n"); + thunk_printf_debug("pmap_create\n"); num_pmaps++; #if 0 printf("%s: pre alloc: num_pmaps %"PRIu64" (%"PRIu64" kb), " @@ -477,7 +477,7 @@ pmap_create(void) pmap->pm_l1 = pool_get(&pmap_l1_pool, PR_WAITOK); memset(pmap->pm_l1, 0, pm_l1_size); - dprintf_debug("\tpmap %p\n", pmap); + thunk_printf_debug("\tpmap %p\n", pmap); return pmap; } @@ -489,7 +489,7 @@ pmap_destroy(pmap_t pmap) int l1, l2; /* if multiple references exist just remove a reference */ - dprintf_debug("pmap_destroy %p\n", pmap); + thunk_printf_debug("pmap_destroy %p\n", pmap); if (--pmap->pm_count > 0) return; num_pmaps--; @@ -522,7 +522,7 @@ pmap_destroy(pmap_t pmap) void pmap_reference(pmap_t pmap) { - dprintf_debug("pmap_reference %p\n", (void *) pmap); + thunk_printf_debug("pmap_reference %p\n", (void *) pmap); pmap->pm_count++; } @@ -575,7 +575,7 @@ pv_get(pmap_t pmap, uintptr_t ppn, uintp } } /* Otherwise, allocate a new entry and link it in after the head. */ - dprintf_debug("pv_get: multiple mapped page ppn %"PRIdPTR", " + thunk_printf_debug("pv_get: multiple mapped page ppn %"PRIdPTR", " "lpn %"PRIdPTR"\n", ppn, lpn); /* extra sanity */ @@ -632,7 +632,7 @@ pmap_fault(pmap_t pmap, vaddr_t va, vm_p uintptr_t lpn, ppn; int prot, cur_prot, diff; - dprintf_debug("pmap_fault pmap %p, va %p\n", pmap, (void *) va); + thunk_printf_debug("pmap_fault pmap %p, va %p\n", pmap, (void *) va); /* get logical page from vaddr */ lpn = atop(va - VM_MIN_ADDRESS); /* V->L */ @@ -640,7 +640,7 @@ pmap_fault(pmap_t pmap, vaddr_t va, vm_p /* not known! then it must be UVM's work */ if (pv == NULL) { - dprintf_debug("%s: no mapping yet\n", __func__); + thunk_printf_debug("%s: no mapping yet\n", __func__); *atype = VM_PROT_READ; /* assume it was a read */ return false; } @@ -661,7 +661,7 @@ pmap_fault(pmap_t pmap, vaddr_t va, vm_p /* check the TLB, if NULL we have a TLB fault */ if (tlb[pv->pv_lpn] == NULL) { if (pv->pv_mmap_ppl != THUNK_PROT_NONE) { - dprintf_debug("%s: tlb fault page lpn %"PRIiPTR"\n", + thunk_printf_debug("%s: tlb fault page lpn %"PRIiPTR"\n", __func__, pv->pv_lpn); pmap_page_activate(pv); return true; @@ -680,7 +680,7 @@ pmap_fault(pmap_t pmap, vaddr_t va, vm_p diff = prot & (prot ^ cur_prot); - dprintf_debug("%s: prot = %d, cur_prot = %d, diff = %d\n", + thunk_printf_debug("%s: prot = %d, cur_prot = %d, diff = %d\n", __func__, prot, cur_prot, diff); *atype = VM_PROT_READ; /* assume its a read error */ if (diff & VM_PROT_READ) { @@ -742,7 +742,7 @@ pmap_page_activate(struct pv_entry *pv) addr = thunk_mmap((void *) va, PAGE_SIZE, pv->pv_mmap_ppl, map_flags, mem_fh, pa); - dprintf_debug("page_activate: (va %p, pa %p, prot %d, ppl %d) -> %p\n", + thunk_printf_debug("page_activate: (va %p, pa %p, prot %d, ppl %d) -> %p\n", (void *) va, (void *) pa, pv->pv_prot, pv->pv_mmap_ppl, (void *) addr); if (addr != (void *) va) @@ -765,7 +765,7 @@ pmap_page_deactivate(struct pv_entry *pv map_flags = THUNK_MAP_FILE | THUNK_MAP_FIXED | THUNK_MAP_SHARED; addr = thunk_mmap((void *) va, PAGE_SIZE, THUNK_PROT_NONE, map_flags, mem_fh, pa); - dprintf_debug("page_deactivate: (va %p, pa %p, ppl %d) -> %p\n", + thunk_printf_debug("page_deactivate: (va %p, pa %p, ppl %d) -> %p\n", (void *) va, (void *) pa, pv->pv_mmap_ppl, (void *) addr); if (addr != (void *) va) panic("pmap_page_deactivate: mmap failed"); @@ -814,7 +814,7 @@ pmap_update_page(uintptr_t ppn) struct pv_entry *pv; for (pv = &pv_table[ppn]; pv != NULL; pv = pv->pv_next) { - dprintf_debug("pmap_update_page: ppn %"PRIdPTR", pv->pv_map = %p\n", + thunk_printf_debug("pmap_update_page: ppn %"PRIdPTR", pv->pv_map = %p\n", ppn, pv->pv_pmap); if (pv->pv_pmap != NULL) { pv_update(pv); @@ -900,7 +900,7 @@ pmap_do_enter(pmap_t pmap, vaddr_t va, p int pmap_enter(pmap_t pmap, vaddr_t va, paddr_t pa, vm_prot_t prot, u_int flags) { - dprintf_debug("pmap_enter %p : v %p, p %p, prot %d, flags %d\n", + thunk_printf_debug("pmap_enter %p : v %p, p %p, prot %d, flags %d\n", (void *) pmap, (void *) va, (void *) pa, (int) prot, (int) flags); return pmap_do_enter(pmap, va, pa, prot, flags, 0); } @@ -911,7 +911,7 @@ pv_release(pmap_t pmap, uintptr_t ppn, u { struct pv_entry *pv, *npv; - dprintf_debug("pv_release ppn %"PRIdPTR", lpn %"PRIdPTR"\n", ppn, lpn); + thunk_printf_debug("pv_release ppn %"PRIdPTR", lpn %"PRIdPTR"\n", ppn, lpn); pv = &pv_table[ppn]; /* * If it is the first entry on the list, it is actually @@ -953,7 +953,7 @@ pmap_remove(pmap_t pmap, vaddr_t sva, va slpn = atop(sva - VM_MIN_ADDRESS); /* V->L */ elpn = atop(eva - VM_MIN_ADDRESS); /* V->L */ - dprintf_debug("pmap_remove() called from " + thunk_printf_debug("pmap_remove() called from " "lpn %"PRIdPTR" to lpn %"PRIdPTR"\n", slpn, elpn); s = splvm(); @@ -978,7 +978,7 @@ void pmap_remove_all(pmap_t pmap) { /* just a hint that all the entries are to be removed */ - dprintf_debug("pmap_remove_all() dummy called\n"); + thunk_printf_debug("pmap_remove_all() dummy called\n"); /* we dont do anything with the kernel pmap */ if (pmap == pmap_kernel()) @@ -1015,7 +1015,7 @@ pmap_protect(pmap_t pmap, vaddr_t sva, v slpn = atop(sva - VM_MIN_ADDRESS); /* V->L */ elpn = atop(eva - VM_MIN_ADDRESS); /* V->L */ - dprintf_debug("pmap_protect() called from " + thunk_printf_debug("pmap_protect() called from " "lpn %"PRIdPTR" to lpn %"PRIdPTR"\n", slpn, elpn); s = splvm(); @@ -1037,7 +1037,7 @@ pmap_unwire(pmap_t pmap, vaddr_t va) struct pv_entry *pv; intptr_t lpn; - dprintf_debug("pmap_unwire called va = %p\n", (void *) va); + thunk_printf_debug("pmap_unwire called va = %p\n", (void *) va); if (pmap == NULL) return; @@ -1061,7 +1061,7 @@ pmap_extract(pmap_t pmap, vaddr_t va, pa struct pv_entry *pv; intptr_t lpn; - dprintf_debug("pmap_extract: extracting va %p\n", (void *) va); + thunk_printf_debug("pmap_extract: extracting va %p\n", (void *) va); #ifdef DIAGNOSTIC if ((va < VM_MIN_ADDRESS) || (va > VM_MAX_KERNEL_ADDRESS)) panic("pmap_extract: invalid va isued\n"); @@ -1083,7 +1083,7 @@ pmap_extract(pmap_t pmap, vaddr_t va, pa void pmap_kenter_pa(vaddr_t va, paddr_t pa, vm_prot_t prot, u_int flags) { - dprintf_debug("pmap_kenter_pa : v %p, p %p, prot %d, flags %d\n", + thunk_printf_debug("pmap_kenter_pa : v %p, p %p, prot %d, flags %d\n", (void *) va, (void *) pa, (int) prot, (int) flags); pmap_do_enter(pmap_kernel(), va, pa, prot, prot | PMAP_WIRED, 1); } @@ -1098,13 +1098,13 @@ void pmap_copy(pmap_t dst_map, pmap_t src_map, vaddr_t dst_addr, vsize_t len, vaddr_t src_addr) { - dprintf_debug("pmap_copy (dummy)\n"); + thunk_printf_debug("pmap_copy (dummy)\n"); } void pmap_update(pmap_t pmap) { - dprintf_debug("pmap_update (dummy)\n"); + thunk_printf_debug("pmap_update (dummy)\n"); } void @@ -1114,7 +1114,7 @@ pmap_activate(struct lwp *l) pmap_t pmap; pmap = p->p_vmspace->vm_map.pmap; - dprintf_debug("pmap_activate for lwp %p, pmap = %p\n", l, pmap); + thunk_printf_debug("pmap_activate for lwp %p, pmap = %p\n", l, pmap); if (pmap == pmap_kernel()) return; /* kernel pmap is always active */ @@ -1136,7 +1136,7 @@ pmap_deactivate(struct lwp *l) int l1, l2; pmap = p->p_vmspace->vm_map.pmap; - dprintf_debug("pmap_DEactivate for lwp %p, pmap = %p\n", l, pmap); + thunk_printf_debug("pmap_DEactivate for lwp %p, pmap = %p\n", l, pmap); if (pmap == pmap_kernel()) return; /* kernel pmap is always active */ @@ -1169,7 +1169,7 @@ pmap_zero_page(paddr_t pa) { char *blob; - dprintf_debug("pmap_zero_page: pa %p\n", (void *) pa); + thunk_printf_debug("pmap_zero_page: pa %p\n", (void *) pa); if (pa & (PAGE_SIZE-1)) panic("%s: unaligned address passed : %p\n", __func__, (void *) pa); @@ -1196,7 +1196,7 @@ pmap_copy_page(paddr_t src_pa, paddr_t d 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", + thunk_printf_debug("pmap_copy_page: pa src %p, pa dst %p\n", (void *) src_pa, (void *) dst_pa); sblob = thunk_mmap(NULL, PAGE_SIZE, @@ -1227,7 +1227,7 @@ pmap_page_protect(struct vm_page *page, struct pv_entry *pv, *npv; ppn = atop(VM_PAGE_TO_PHYS(page)); - dprintf_debug("pmap_page_protect page %"PRIiPTR" to prot %d\n", ppn, prot); + thunk_printf_debug("pmap_page_protect page %"PRIiPTR" to prot %d\n", ppn, prot); if (prot == VM_PROT_NONE) { /* visit all mappings */ @@ -1281,7 +1281,7 @@ pmap_clear_modify(struct vm_page *page) ppn = atop(VM_PAGE_TO_PHYS(page)); rv = pmap_is_modified(page); - dprintf_debug("pmap_clear_modify page %"PRIiPTR"\n", ppn); + thunk_printf_debug("pmap_clear_modify page %"PRIiPTR"\n", ppn); /* if marked modified, clear it in all the pmap's referencing it */ if (rv) { @@ -1306,7 +1306,7 @@ pmap_clear_reference(struct vm_page *pag ppn = atop(VM_PAGE_TO_PHYS(page)); rv = pmap_is_referenced(page); - dprintf_debug("pmap_clear_reference page %"PRIiPTR"\n", ppn); + thunk_printf_debug("pmap_clear_reference page %"PRIiPTR"\n", ppn); if (rv) { pv_table[ppn].pv_pflags &= ~PV_REFERENCED; @@ -1324,7 +1324,7 @@ pmap_is_modified(struct vm_page *page) ppn = atop(VM_PAGE_TO_PHYS(page)); rv = (pv_table[ppn].pv_pflags & PV_MODIFIED) != 0; - dprintf_debug("pmap_is_modified page %"PRIiPTR" : %s\n", ppn, rv?"yes":"no"); + thunk_printf_debug("pmap_is_modified page %"PRIiPTR" : %s\n", ppn, rv?"yes":"no"); return rv; } @@ -1335,7 +1335,7 @@ pmap_is_referenced(struct vm_page *page) intptr_t ppn; ppn = atop(VM_PAGE_TO_PHYS(page)); - dprintf_debug("pmap_is_referenced page %"PRIiPTR"\n", ppn); + thunk_printf_debug("pmap_is_referenced page %"PRIiPTR"\n", ppn); return (pv_table[ppn].pv_pflags & PV_REFERENCED) != 0; } @@ -1349,7 +1349,7 @@ pmap_phys_address(paddr_t cookie) vaddr_t pmap_growkernel(vaddr_t maxkvaddr) { - dprintf_debug("pmap_growkernel: till %p (adding %"PRIu64" KB)\n", + thunk_printf_debug("pmap_growkernel: till %p (adding %"PRIu64" KB)\n", (void *) maxkvaddr, (uint64_t) (maxkvaddr - kmem_ext_cur_end)/1024); if (maxkvaddr > kmem_ext_end) Index: src/sys/arch/usermode/usermode/syscall.c diff -u src/sys/arch/usermode/usermode/syscall.c:1.19 src/sys/arch/usermode/usermode/syscall.c:1.20 --- src/sys/arch/usermode/usermode/syscall.c:1.19 Tue Dec 20 15:45:37 2011 +++ src/sys/arch/usermode/usermode/syscall.c Tue Jan 3 12:05:00 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: syscall.c,v 1.19 2011/12/20 15:45:37 reinoud Exp $ */ +/* $NetBSD: syscall.c,v 1.20 2012/01/03 12:05:00 reinoud Exp $ */ /*- * Copyright (c) 2007 Jared D. McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.19 2011/12/20 15:45:37 reinoud Exp $"); +__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.20 2012/01/03 12:05:00 reinoud Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -117,8 +117,8 @@ syscall(void) #if 0 aprint_debug("syscall no. %d, ", code); aprint_debug("nargs %d, argsize %d => ", nargs, argsize); - dprintf_debug("syscall no. %d, ", code); - dprintf_debug("nargs %d, argsize %d => ", nargs, argsize); + thunk_printf_debug("syscall no. %d, ", code); + thunk_printf_debug("nargs %d, argsize %d => ", nargs, argsize); #endif /* @@ -160,7 +160,7 @@ syscall(void) /* nothing to do */ break; } - //dprintf_debug("end of syscall : return to userland\n"); + //thunk_printf_debug("end of syscall : return to userland\n"); //if (code != 4) printf("userret() code %d\n", code); userret(l); } @@ -219,7 +219,7 @@ return; } #if 0 if ((code == 4)) { -// dprintf_debug("[us] %s", (char *) args[1]); +// thunk_printf_debug("[us] %s", (char *) args[1]); printf("[us] %s", (char *) args[1]); } #endif Index: src/sys/arch/usermode/usermode/thunk.c diff -u src/sys/arch/usermode/usermode/thunk.c:1.71 src/sys/arch/usermode/usermode/thunk.c:1.72 --- src/sys/arch/usermode/usermode/thunk.c:1.71 Sat Dec 31 21:29:12 2011 +++ src/sys/arch/usermode/usermode/thunk.c Tue Jan 3 12:05:00 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: thunk.c,v 1.71 2011/12/31 21:29:12 christos Exp $ */ +/* $NetBSD: thunk.c,v 1.72 2012/01/03 12:05:00 reinoud Exp $ */ /*- * Copyright (c) 2011 Jared D. McNeill <jmcne...@invisible.ca> @@ -28,7 +28,7 @@ #include <sys/cdefs.h> #ifdef __NetBSD__ -__RCSID("$NetBSD: thunk.c,v 1.71 2011/12/31 21:29:12 christos Exp $"); +__RCSID("$NetBSD: thunk.c,v 1.72 2012/01/03 12:05:00 reinoud Exp $"); #endif #include <sys/types.h> @@ -82,15 +82,26 @@ __RCSID("$NetBSD: thunk.c,v 1.71 2011/12 extern int boothowto; void -dprintf_debug(const char *fmt, ...) +thunk_printf_debug(const char *fmt, ...) { - if (boothowto & AB_DEBUG) { - va_list ap; + if (boothowto & AB_DEBUG) { + va_list ap; - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - va_end(ap); - } + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + } +} + +void +thunk_printf(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + fflush(stderr); } static void Index: src/sys/arch/usermode/usermode/trap.c diff -u src/sys/arch/usermode/usermode/trap.c:1.50 src/sys/arch/usermode/usermode/trap.c:1.51 --- src/sys/arch/usermode/usermode/trap.c:1.50 Tue Jan 3 10:53:46 2012 +++ src/sys/arch/usermode/usermode/trap.c Tue Jan 3 12:05:00 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: trap.c,v 1.50 2012/01/03 10:53:46 reinoud Exp $ */ +/* $NetBSD: trap.c,v 1.51 2012/01/03 12:05:00 reinoud Exp $ */ /*- * Copyright (c) 2011 Reinoud Zandijk <rein...@netbsd.org> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.50 2012/01/03 10:53:46 reinoud Exp $"); +__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.51 2012/01/03 12:05:00 reinoud Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -119,29 +119,29 @@ mem_access_handler(int sig, siginfo_t *i //printf("sigsegv\n"); #if 0 va = (vaddr_t) info->si_addr; - dprintf_debug("mem trap lwp = %p pid = %d lid = %d, va = %p\n", + thunk_printf_debug("mem trap lwp = %p pid = %d lid = %d, va = %p\n", curlwp, curlwp->l_proc->p_pid, curlwp->l_lid, (void *) va); #endif #if 0 - dprintf_debug("SIGSEGV or SIGBUS!\n"); - dprintf_debug("\tsi_signo = %d\n", info->si_signo); - dprintf_debug("\tsi_errno = %d\n", info->si_errno); - dprintf_debug("\tsi_code = %d\n", info->si_code); + thunk_printf_debug("SIGSEGV or SIGBUS!\n"); + thunk_printf_debug("\tsi_signo = %d\n", info->si_signo); + thunk_printf_debug("\tsi_errno = %d\n", info->si_errno); + thunk_printf_debug("\tsi_code = %d\n", info->si_code); if (info->si_code == SEGV_MAPERR) - dprintf_debug("\t\tSEGV_MAPERR\n"); + thunk_printf_debug("\t\tSEGV_MAPERR\n"); if (info->si_code == SEGV_ACCERR) - dprintf_debug("\t\tSEGV_ACCERR\n"); + thunk_printf_debug("\t\tSEGV_ACCERR\n"); if (info->si_code == BUS_ADRALN) - dprintf_debug("\t\tBUS_ADRALN\n"); + thunk_printf_debug("\t\tBUS_ADRALN\n"); if (info->si_code == BUS_ADRERR) - dprintf_debug("\t\tBUS_ADRERR\n"); + thunk_printf_debug("\t\tBUS_ADRERR\n"); if (info->si_code == BUS_OBJERR) - dprintf_debug("\t\tBUS_OBJERR\n"); - dprintf_debug("\tsi_addr = %p\n", info->si_addr); - dprintf_debug("\tsi_trap = %d\n", info->si_trap); + thunk_printf_debug("\t\tBUS_OBJERR\n"); + thunk_printf_debug("\tsi_addr = %p\n", info->si_addr); + thunk_printf_debug("\tsi_trap = %d\n", info->si_trap); #endif l = curlwp; @@ -282,13 +282,13 @@ pagefault(void) if (from_kernel && (va >= VM_MIN_KERNEL_ADDRESS)) vm_map = kernel_map; - dprintf_debug("pagefault : pc %p, va %p\n", (void *) pc, (void *) va); + thunk_printf_debug("pagefault : pc %p, va %p\n", (void *) pc, (void *) va); /* can pmap handle it? on its own? (r/m) */ onfault = pcb->pcb_onfault; rv = 0; if (!pmap_fault(vm_map->pmap, va, &atype)) { - dprintf_debug("pmap fault couldn't handle it! : " + thunk_printf_debug("pmap fault couldn't handle it! : " "derived atype %d\n", atype); /* extra debug for now */ @@ -301,7 +301,7 @@ pagefault(void) } if (rv) { - dprintf_debug("uvm_fault returned error %d\n", rv); + thunk_printf_debug("uvm_fault returned error %d\n", rv); /* something got wrong */ if (from_kernel) {