Module Name: src
Committed By: mrg
Date: Sun Jan 17 01:54:37 UTC 2021
Modified Files:
src/sys/arch/sparc/sparc: pmap.c
Log Message:
convert most uses of pmapdebug to use the new DPRINTF() macro.
add PMAP_INITLOUD debug option, that shows how pmap_bootstrap()
eats up the space provided by /boot as spare space.
To generate a diff of this commit:
cvs rdiff -u -r1.371 -r1.372 src/sys/arch/sparc/sparc/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/sparc/sparc/pmap.c
diff -u src/sys/arch/sparc/sparc/pmap.c:1.371 src/sys/arch/sparc/sparc/pmap.c:1.372
--- src/sys/arch/sparc/sparc/pmap.c:1.371 Wed Jan 13 16:42:17 2021
+++ src/sys/arch/sparc/sparc/pmap.c Sun Jan 17 01:54:37 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.371 2021/01/13 16:42:17 chs Exp $ */
+/* $NetBSD: pmap.c,v 1.372 2021/01/17 01:54:37 mrg Exp $ */
/*
* Copyright (c) 1996
@@ -56,7 +56,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.371 2021/01/13 16:42:17 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.372 2021/01/17 01:54:37 mrg Exp $");
#include "opt_ddb.h"
#include "opt_kgdb.h"
@@ -155,6 +155,7 @@ EVCNT_ATTACH_STATIC(mmu_pagein_evcnt);
#define PDB_CHANGEPROT 0x0008
#define PDB_ENTER 0x0010
#define PDB_FOLLOW 0x0020
+#define PDB_INITLOUD 0x0040
#define PDB_MMU_ALLOC 0x0100
#define PDB_MMU_STEAL 0x0200
@@ -166,6 +167,12 @@ EVCNT_ATTACH_STATIC(mmu_pagein_evcnt);
#define PDB_SWITCHMAP 0x8000
#define PDB_SANITYCHK 0x10000
int pmapdebug = 0;
+#define DPRINTF(level, fmt, ...) do { \
+ if (pmapdebug & (level)) \
+ printf("%s:%d: " fmt "\n", __func__, __LINE__, ##__VA_ARGS__); \
+} while (0)
+#else
+#define DPRINTF(level, fmt, ...) /* nothing */
#endif
/*
@@ -1619,8 +1626,8 @@ me_alloc(struct mmuentry *mh, struct pma
#ifdef DEBUG
if (me->me_pmap != NULL)
panic("me_alloc: freelist entry has pmap");
- if (pmapdebug & PDB_MMU_ALLOC)
- printf("me_alloc: got pmeg %d\n", me->me_cookie);
+ DPRINTF(PDB_MMU_ALLOC,
+ "me_alloc: got pmeg %d", me->me_cookie);
#endif
mmuq_insert_tail(mh, me);
@@ -1651,11 +1658,8 @@ me_alloc(struct mmuentry *mh, struct pma
me = mmuq_first(&segm_lru);
pm = me->me_pmap;
-#ifdef DEBUG
- if (pmapdebug & (PDB_MMU_ALLOC | PDB_MMU_STEAL))
- printf("me_alloc: stealing pmeg 0x%x from pmap %p\n",
- me->me_cookie, pm);
-#endif
+ DPRINTF(PDB_MMU_ALLOC | PDB_MMU_STEAL,
+ "me_alloc: stealing pmeg 0x%x from pmap %p", me->me_cookie, pm);
mmu_stolenpmegs_evcnt.ev_count++;
@@ -1801,9 +1805,8 @@ me_free(struct pmap *pm, u_int pmeg)
#ifdef DEBUG
rp = &pm->pm_regmap[me->me_vreg];
- if (pmapdebug & PDB_MMU_ALLOC)
- printf("me_free: freeing pmeg %d from pmap %p\n",
- me->me_cookie, pm);
+ DPRINTF(PDB_MMU_ALLOC,
+ "me_free: freeing pmeg %d from pmap %p", me->me_cookie, pm);
if (me->me_cookie != pmeg)
panic("me_free: wrong mmuentry");
if (pm != me->me_pmap)
@@ -1869,8 +1872,8 @@ region_alloc(struct mmuentry *mh, struct
#ifdef DEBUG
if (me->me_pmap != NULL)
panic("region_alloc: freelist entry has pmap");
- if (pmapdebug & PDB_MMUREG_ALLOC)
- printf("region_alloc: got smeg 0x%x\n", me->me_cookie);
+ DPRINTF(PDB_MMUREG_ALLOC,
+ "region_alloc: got smeg 0x%x", me->me_cookie);
#endif
mmuq_insert_tail(mh, me);
@@ -1895,11 +1898,10 @@ region_alloc(struct mmuentry *mh, struct
panic("region_alloc: LRU entry has no pmap");
if (pm == pmap_kernel())
panic("region_alloc: stealing from kernel");
-#ifdef DEBUG
- if (pmapdebug & (PDB_MMUREG_ALLOC | PDB_MMUREG_STEAL))
- printf("region_alloc: stealing smeg 0x%x from pmap %p\n",
- me->me_cookie, pm);
-#endif
+ DPRINTF(PDB_MMUREG_ALLOC | PDB_MMUREG_STEAL,
+ "region_alloc: stealing smeg 0x%x from pmap %p",
+ me->me_cookie, pm);
+
/*
* Remove from LRU list, and insert at end of new list
* (probably the LRU list again, but so what?).
@@ -1946,10 +1948,9 @@ region_free(struct pmap *pm, u_int smeg)
{
struct mmuentry *me = &mmuregions[smeg];
+ DPRINTF(PDB_MMUREG_ALLOC,
+ "region_free: freeing smeg 0x%x from pmap %p", me->me_cookie, pm);
#ifdef DEBUG
- if (pmapdebug & PDB_MMUREG_ALLOC)
- printf("region_free: freeing smeg 0x%x from pmap %p\n",
- me->me_cookie, pm);
if (me->me_cookie != smeg)
panic("region_free: wrong mmuentry");
if (pm != me->me_pmap)
@@ -2145,9 +2146,10 @@ ctx_alloc(struct pmap *pm)
#ifdef DEBUG
if (pm->pm_ctx)
panic("ctx_alloc pm_ctx");
- if (pmapdebug & PDB_CTX_ALLOC)
- printf("ctx_alloc[%d](%p)\n", cpu_number(), pm);
#endif
+ DPRINTF(PDB_CTX_ALLOC,
+ "ctx_alloc[%d](%p)", cpu_number(), pm);
+
if (CPU_HAS_SUNMMU) {
gap_start = pm->pm_gap_start;
gap_end = pm->pm_gap_end;
@@ -2169,10 +2171,11 @@ ctx_alloc(struct pmap *pm)
#ifdef DEBUG
if (c->c_pmap == NULL)
panic("ctx_alloc cu_pmap");
- if (pmapdebug & (PDB_CTX_ALLOC | PDB_CTX_STEAL))
- printf("ctx_alloc[%d]: steal context %d from %p\n",
- cpu_number(), cnum, c->c_pmap);
#endif
+ DPRINTF(PDB_CTX_ALLOC | PDB_CTX_STEAL,
+ "ctx_alloc[%d]: steal context %d from %p",
+ cpu_number(), cnum, c->c_pmap);
+
c->c_pmap->pm_ctx = NULL;
c->c_pmap->pm_ctxnum = 0;
doflush = (CACHEINFO.c_vactype != VAC_NONE);
@@ -2621,13 +2624,10 @@ pv_link4_4c(struct vm_page *pg, struct p
#endif
}
if (BADALIAS(va, pv->pv_va)) {
-#ifdef DEBUG
- if (pmapdebug & PDB_CACHESTUFF)
- printf(
- "pv_link: badalias: proc %s, 0x%lx<=>0x%lx, pg %p\n",
- curproc ? curproc->p_comm : "--",
- va, pv->pv_va, pg);
-#endif
+ DPRINTF(PDB_CACHESTUFF,
+ "pv_link: badalias: proc %s, 0x%lx<=>0x%lx, pg %p",
+ curproc ? curproc->p_comm : "--",
+ va, pv->pv_va, pg);
/* Mark list head `uncached due to aliases' */
pv0->pv_flags |= PV_ANC;
pv_changepte4_4c(pg, PG_NC, 0);
@@ -2818,13 +2818,9 @@ pv_unlink4m(struct vm_page *pg, struct p
if (BADALIAS(va, npv->pv_va) ||
(npv->pv_flags & PV_NC) != 0)
return;
-#ifdef DEBUG
- if (pmapdebug & PDB_CACHESTUFF)
- printf(
- "pv_unlink: alias ok: proc %s, va 0x%lx, pg %p\n",
- curproc ? curproc->p_comm : "--",
- va, pg);
-#endif
+ DPRINTF(PDB_CACHESTUFF,
+ "pv_unlink: alias ok: proc %s, va 0x%lx, pg %p",
+ curproc ? curproc->p_comm : "--", va, pg);
pv0->pv_flags &= ~PV_ANC;
pv_changepte4m(pg, SRMMU_PG_C, 0);
}
@@ -2890,13 +2886,10 @@ pv_link4m(struct vm_page *pg, struct pma
#endif
}
if (BADALIAS(va, pv->pv_va)) {
-#ifdef DEBUG
- if (pmapdebug & PDB_CACHESTUFF)
- printf(
- "pv_link: badalias: proc %s, 0x%lx<=>0x%lx, pg %p\n",
+ DPRINTF(PDB_CACHESTUFF,
+ "pv_link: badalias: proc %s, 0x%lx<=>0x%lx, pg %p",
curproc ? curproc->p_comm : "--",
va, pv->pv_va, pg);
-#endif
/* Mark list head `uncached due to aliases' */
pv0->pv_flags |= PV_ANC;
pv_changepte4m(pg, 0, SRMMU_PG_C);
@@ -3588,6 +3581,7 @@ pmap_bootstrap4m(void *top)
p = (vaddr_t)top;
p = (p + NBPG - 1) & ~PGOFSET;
+ DPRINTF(PDB_INITLOUD, "initial p=%lx", p);
/*
* Initialize the kernel pmap.
@@ -3605,8 +3599,8 @@ pmap_bootstrap4m(void *top)
#pragma GCC diagnostic ignored "-Warray-bounds"
kernel_pmap_store.pm_regmap = kernel_regmap_store - NUREG;
#pragma GCC diagnostic pop
- memset(kernel_regmap_store, 0, NKREG * sizeof(struct regmap));
- memset(kernel_segmap_store, 0, NKREG * NSEGRG * sizeof(struct segmap));
+ memset(kernel_regmap_store, 0, sizeof kernel_regmap_store);
+ memset(kernel_segmap_store, 0, sizeof kernel_segmap_store);
for (i = NKREG; --i >= 0;) {
kernel_regmap_store[i].rg_segmap =
&kernel_segmap_store[i * NSEGRG];
@@ -3617,15 +3611,18 @@ pmap_bootstrap4m(void *top)
/* Allocate kernel region pointer tables */
pmap_kernel()->pm_reg_ptps = (int **)(q = p);
+ DPRINTF(PDB_INITLOUD, "kernel region pointer tables p=%lx", p);
p += sparc_ncpus * sizeof(int **);
memset((void *)q, 0, (u_int)p - (u_int)q);
pmap_kernel()->pm_reg_ptps_pa = (int *)(q = p);
+ DPRINTF(PDB_INITLOUD, "kernel region pointer tables pa p=%lx", p);
p += sparc_ncpus * sizeof(int *);
memset((void *)q, 0, (u_int)p - (u_int)q);
/* Allocate context administration */
pmap_kernel()->pm_ctx = ctxinfo = ci = (union ctxinfo *)p;
+ DPRINTF(PDB_INITLOUD, "context administration p=%lx", p);
p += ncontext * sizeof *ci;
memset((void *)ci, 0, (u_int)p - (u_int)ci);
@@ -3636,6 +3633,7 @@ pmap_bootstrap4m(void *top)
* of available pages are free.
*/
p = (p + NBPG - 1) & ~PGOFSET;
+ DPRINTF(PDB_INITLOUD, "align p=%lx", p);
/*
* Reserve memory for MMU pagetables. Some of these have severe
@@ -3654,6 +3652,7 @@ pmap_bootstrap4m(void *top)
cpuinfo.ctx_tbl = (int *)roundup((u_int)p, ctxtblsize);
cpuinfo.ctx_tbl_pa = PMAP_BOOTSTRAP_VA2PA(cpuinfo.ctx_tbl);
p = (u_int)cpuinfo.ctx_tbl + ctxtblsize;
+ DPRINTF(PDB_INITLOUD, "post ctx table p=%lx", p);
#if defined(MULTIPROCESSOR)
/*
@@ -3670,23 +3669,30 @@ pmap_bootstrap4m(void *top)
* mapping without delay.
*/
p = (vaddr_t) roundup(p, SRMMU_L1SIZE * sizeof(u_int));
+ DPRINTF(PDB_INITLOUD, "roundup kernel_regtable_store p=%lx", p);
qzero((void *)p, SRMMU_L1SIZE * sizeof(u_int));
kernel_regtable_store = (u_int *)p;
p += SRMMU_L1SIZE * sizeof(u_int);
+ DPRINTF(PDB_INITLOUD, "L1 pages p=%lx", p);
p = (vaddr_t) roundup(p, SRMMU_L2SIZE * sizeof(u_int));
+ DPRINTF(PDB_INITLOUD, "roundup kernel_segtable_store p=%lx", p);
qzero((void *)p, (SRMMU_L2SIZE * sizeof(u_int)) * NKREG);
kernel_segtable_store = (u_int *)p;
p += (SRMMU_L2SIZE * sizeof(u_int)) * NKREG;
+ DPRINTF(PDB_INITLOUD, "L2 pages p=%lx", p);
p = (vaddr_t) roundup(p, SRMMU_L3SIZE * sizeof(u_int));
+ DPRINTF(PDB_INITLOUD, "roundup kernel_pagtable_store p=%lx", p);
/* zero it: all will be SRMMU_TEINVALID */
qzero((void *)p, ((SRMMU_L3SIZE * sizeof(u_int)) * NSEGRG) * NKREG);
kernel_pagtable_store = (u_int *)p;
p += ((SRMMU_L3SIZE * sizeof(u_int)) * NSEGRG) * NKREG;
+ DPRINTF(PDB_INITLOUD, "L3 pages p=%lx", p);
/* Round to next page and mark end of pre-wired kernel space */
p = (p + NBPG - 1) & ~PGOFSET;
+ DPRINTF(PDB_INITLOUD, "align p=%lx", p);
pagetables_end = p;
#if defined(MULTIPROCESSOR)
@@ -3712,12 +3718,14 @@ pmap_bootstrap4m(void *top)
cpuinfo_len = sz + align - PAGE_SIZE;
/* Grab as much space as we need */
+ DPRINTF(PDB_INITLOUD, "cpuinfo=%lx", p);
cpuinfo_data = (uint8_t *)p;
p += (cpuinfo_len * sparc_ncpus);
} else
cpuinfo_data = (uint8_t *)CPUINFO_VA;
#endif
+ DPRINTF(PDB_INITLOUD, "avail_start=%lx", p);
avail_start = PMAP_BOOTSTRAP_VA2PA(p);
/*
@@ -4204,13 +4212,13 @@ pmap_map(vaddr_t va, paddr_t pa, paddr_t
return (va);
}
-#ifdef DEBUG
/*
* Check a pmap for spuriously lingering mappings
*/
static inline void
pmap_quiet_check(struct pmap *pm)
{
+#ifdef DEBUG
int vs, vr;
if (CPU_HAS_SUNMMU) {
@@ -4300,8 +4308,8 @@ pmap_quiet_check(struct pmap *pm)
printf("pmap_chk: wired count %ld\n",
pm->pm_stats.wired_count);
}
-}
#endif /* DEBUG */
+}
int
pmap_pmap_pool_ctor(void *arg, void *object, int flags)
@@ -4392,10 +4400,7 @@ pmap_pmap_pool_dtor(void *arg, void *obj
union ctxinfo *c;
int s = splvm(); /* paranoia */
-#ifdef DEBUG
- if (pmapdebug & PDB_DESTROY)
- printf("pmap_pmap_pool_dtor(%p)\n", pm);
-#endif
+ DPRINTF(PDB_DESTROY, "pmap_pmap_pool_dtor(%p)", pm);
if ((c = pm->pm_ctx) != NULL) {
mutex_spin_enter(&ctx_lock);
@@ -4455,11 +4460,9 @@ pmap_create(void)
pm->pm_gap_end = VA_VREG(VM_MAXUSER_ADDRESS);
}
-#ifdef DEBUG
- if (pmapdebug & PDB_CREATE)
- printf("pmap_create[%d]: created %p\n", cpu_number(), pm);
+ DPRINTF(PDB_CREATE, "pmap_create[%d]: created %p", cpu_number(), pm);
pmap_quiet_check(pm);
-#endif
+
return (pm);
}
@@ -4471,14 +4474,9 @@ void
pmap_destroy(struct pmap *pm)
{
-#ifdef DEBUG
- if (pmapdebug & PDB_DESTROY)
- printf("pmap_destroy[%d](%p)\n", cpu_number(), pm);
-#endif
+ DPRINTF(PDB_DESTROY, "pmap_destroy[%d](%p)", cpu_number(), pm);
if (atomic_dec_uint_nv(&pm->pm_refcount) == 0) {
-#ifdef DEBUG
pmap_quiet_check(pm);
-#endif
pool_cache_put(&pmap_cache, pm);
}
}
@@ -4649,11 +4647,8 @@ pmap_remove(struct pmap *pm, vaddr_t va,
int vr, vs, s, ctx;
void (*rm)(struct pmap *, vaddr_t, vaddr_t, int, int);
-#ifdef DEBUG
- if (pmapdebug & PDB_REMOVE)
- printf("pmap_remove[%d](%p, 0x%lx, 0x%lx)\n",
- cpu_number(), pm, va, endva);
-#endif
+ DPRINTF(PDB_REMOVE, "pmap_remove[%d](%p, 0x%lx, 0x%lx)",
+ cpu_number(), pm, va, endva);
if (!CPU_HAS_SRMMU)
write_user_windows();
@@ -5066,6 +5061,7 @@ pmap_page_protect4_4c(struct vm_page *pg
printf("pmap_page_protect(0x%lx, 0x%x)\n",
VM_PAGE_TO_PHYS(pg), prot);
#endif
+
/*
* Skip unmanaged pages, or operations that do not take
* away write permission.
@@ -5279,11 +5275,8 @@ pmap_changeprot4_4c(struct pmap *pm, vad
struct regmap *rp;
struct segmap *sp;
-#ifdef DEBUG
- if (pmapdebug & PDB_CHANGEPROT)
- printf("pmap_changeprot(%p, 0x%lx, 0x%x, 0x%x)\n",
- pm, va, prot, flags);
-#endif
+ DPRINTF(PDB_CHANGEPROT, "pmap_changeprot(%p, 0x%lx, 0x%x, 0x%x)",
+ pm, va, prot, flags);
if (pm == pmap_kernel())
newprot = prot & VM_PROT_WRITE ? PG_S|PG_W : PG_S;
@@ -5476,13 +5469,10 @@ pmap_protect4m(struct pmap *pm, vaddr_t
return;
}
-#ifdef DEBUG
- if (pmapdebug & PDB_CHANGEPROT)
- printf("pmap_protect[%d][curpid %d, ctx %d,%d](%lx, %lx, %x)\n",
- cpu_number(), curproc->p_pid,
- getcontext4m(), pm->pm_ctx ? pm->pm_ctxnum : -1,
- sva, eva, prot);
-#endif
+ DPRINTF(PDB_CHANGEPROT,
+ "pmap_protect[%d][curpid %d, ctx %d,%d](%lx, %lx, %x)",
+ cpu_number(), curproc->p_pid, getcontext4m(),
+ pm->pm_ctx ? pm->pm_ctxnum : -1, sva, eva, prot);
newprot = pte_prot4m(pm, prot);
@@ -5554,11 +5544,8 @@ pmap_changeprot4m(struct pmap *pm, vaddr
struct segmap *sp;
bool owired;
-#ifdef DEBUG
- if (pmapdebug & PDB_CHANGEPROT)
- printf("pmap_changeprot[%d](%p, 0x%lx, 0x%x, 0x%x)\n",
- cpu_number(), pm, va, prot, flags);
-#endif
+ DPRINTF(PDB_CHANGEPROT, "pmap_changeprot[%d](%p, 0x%lx, 0x%x, 0x%x)",
+ cpu_number(), pm, va, prot, flags);
newprot = pte_prot4m(pm, prot);
@@ -5629,11 +5616,8 @@ pmap_enter4_4c(struct pmap *pm, vaddr_t
return 0;
}
-#ifdef DEBUG
- if (pmapdebug & PDB_ENTER)
- printf("pmap_enter(%p, 0x%lx, 0x%lx, 0x%x, 0x%x)\n",
- pm, va, pa, prot, flags);
-#endif
+ DPRINTF(PDB_ENTER, "pmap_enter(%p, 0x%lx, 0x%lx, 0x%x, 0x%x)",
+ pm, va, pa, prot, flags);
pg = PHYS_TO_VM_PAGE(pa);
pteproto = PG_V | PMAP_T2PTE_4(pa);
@@ -6077,10 +6061,7 @@ pmap_kremove4_4c(vaddr_t va, vsize_t len
int vr, vs, s, ctx;
endva = va + len;
-#ifdef DEBUG
- if (pmapdebug & PDB_REMOVE)
- printf("pmap_kremove(0x%lx, 0x%lx)\n", va, endva);
-#endif
+ DPRINTF(PDB_REMOVE, "pmap_kremove(0x%lx, 0x%lx)", va, endva);
write_user_windows();
@@ -6226,14 +6207,11 @@ pmap_enter4m(struct pmap *pm, vaddr_t va
int pteproto;
int error;
-#ifdef DEBUG
- if (pmapdebug & PDB_ENTER)
- printf("pmap_enter[curcpu %d, curpid %d, ctx %d,%d]"
- "(%p, 0x%lx, 0x%lx, 0x%x, 0x%x)\n",
- cpu_number(), curproc==NULL ? -1 : curproc->p_pid,
- getcontext4m(), pm->pm_ctx==NULL ? -1 : pm->pm_ctxnum,
- pm, va, pa, prot, flags);
-#endif
+ DPRINTF(PDB_ENTER, "pmap_enter[curcpu %d, curpid %d, ctx %d,%d]"
+ "(%p, 0x%lx, 0x%lx, 0x%x, 0x%x)",
+ cpu_number(), curproc == NULL ? -1 : curproc->p_pid,
+ getcontext4m(), pm->pm_ctx == NULL ? -1 : pm->pm_ctxnum,
+ pm, va, pa, prot, flags);
pg = PHYS_TO_VM_PAGE(pa);
@@ -6494,13 +6472,12 @@ pmap_enu4m(struct pmap *pm, vaddr_t va,
* If old pa was managed, remove from pvlist.
* If old page was cached, flush cache.
*/
-#ifdef DEBUG
- if (pmapdebug & PDB_SWITCHMAP)
- printf("%s[%d]: pmap_enu: changing existing "
- "va 0x%x: pte 0x%x=>0x%x\n",
- curproc->p_comm, curproc->p_pid,
- (int)va, tpte, pteproto);
-#endif
+ DPRINTF(PDB_SWITCHMAP,
+ "%s[%d]: pmap_enu: changing existing "
+ "va 0x%x: pte 0x%x=>0x%x",
+ curproc->p_comm, curproc->p_pid,
+ (int)va, tpte, pteproto);
+
if ((tpte & SRMMU_PGTYPE) == PG_SUN4M_OBMEM) {
struct vm_page *opg;
if ((opg = pvhead4m(tpte)) != NULL) {
@@ -6761,28 +6738,19 @@ pmap_extract4_4c(struct pmap *pm, vaddr_
vs = VA_VSEG(va);
rp = &pm->pm_regmap[vr];
if (rp->rg_segmap == NULL) {
-#ifdef DEBUG
- if (pmapdebug & PDB_FOLLOW)
- printf("pmap_extract: invalid segment (%d)\n", vr);
-#endif
+ DPRINTF(PDB_FOLLOW, "pmap_extract: invalid segment (%d)", vr);
return (false);
}
sp = &rp->rg_segmap[vs];
ptep = sp->sg_pte;
if (ptep == NULL) {
-#ifdef DEBUG
- if (pmapdebug & PDB_FOLLOW)
- printf("pmap_extract: invalid segment\n");
-#endif
+ DPRINTF(PDB_FOLLOW, "pmap_extract: invalid segment");
return (false);
}
pte = ptep[VA_VPG(va)];
if ((pte & PG_V) == 0) {
-#ifdef DEBUG
- if (pmapdebug & PDB_FOLLOW)
- printf("pmap_extract: invalid pte\n");
-#endif
+ DPRINTF(PDB_FOLLOW, "pmap_extract: invalid pte");
return (false);
}
pte &= PG_PFNUM;
@@ -6821,29 +6789,20 @@ pmap_extract4m(struct pmap *pm, vaddr_t
rp = &pm->pm_regmap[vr];
if (rp->rg_segmap == NULL) {
-#ifdef DEBUG
- if (pmapdebug & PDB_FOLLOW)
- printf("pmap_extract: no segmap\n");
-#endif
+ DPRINTF(PDB_FOLLOW, "pmap_extract: no segmap");
goto out;
}
sp = &rp->rg_segmap[vs];
if (sp->sg_pte == NULL) {
-#ifdef DEBUG
- if (pmapdebug & PDB_FOLLOW)
- printf("pmap_extract: no ptes\n");
-#endif
+ DPRINTF(PDB_FOLLOW, "pmap_extract: no ptes");
goto out;
}
pte = sp->sg_pte[VA_SUN4M_VPG(va)];
if ((pte & SRMMU_TETYPE) != SRMMU_TEPTE) {
-#ifdef DEBUG
- if (pmapdebug & PDB_FOLLOW)
- printf("pmap_extract: invalid pte of type %d\n",
- pte & SRMMU_TETYPE);
-#endif
+ DPRINTF(PDB_FOLLOW, "pmap_extract: invalid pte of type %d",
+ pte & SRMMU_TETYPE);
/*
* We can read a spurious invalid pte if the system is in
* the middle of the PTE update protocol. So, acquire the