diff options
author | marcel <marcel@FreeBSD.org> | 2005-04-16 23:38:32 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2005-04-16 23:38:32 +0000 |
commit | 691c2c574b95bbbcc8872b75cd7b245e98f699bf (patch) | |
tree | 7f3f1dca0704a7916f27ad12782ee75aa88d40e9 /sys/ia64 | |
parent | bdb6987b1d0507edeab059f66ed6c31db98f1a65 (diff) | |
download | FreeBSD-src-691c2c574b95bbbcc8872b75cd7b245e98f699bf.zip FreeBSD-src-691c2c574b95bbbcc8872b75cd7b245e98f699bf.tar.gz |
Add a kpte command to DDB. It dumps the PTE of a KVA. This helps
to analyze faults and TLB/VHPT inconsistencies.
Diffstat (limited to 'sys/ia64')
-rw-r--r-- | sys/ia64/ia64/pmap.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sys/ia64/ia64/pmap.c b/sys/ia64/ia64/pmap.c index 77ee4ca..5a14f04 100644 --- a/sys/ia64/ia64/pmap.c +++ b/sys/ia64/ia64/pmap.c @@ -2348,4 +2348,24 @@ DB_COMMAND(ttag, db_ttag) db_printf("0x%lx\n", ia64_ttag(addr)); } +DB_COMMAND(kpte, db_kpte) +{ + struct ia64_lpte *pte; + + if (!have_addr) { + db_printf("usage: kpte <kva>\n"); + return; + } + if (addr < VM_MIN_KERNEL_ADDRESS) { + db_printf("kpte: error: invalid <kva>\n"); + return; + } + pte = &ia64_kptdir[KPTE_DIR_INDEX(addr)][KPTE_PTE_INDEX(addr)]; + db_printf("kpte at %p:\n", pte); + db_printf(" pte =%016lx\n", pte->pte); + db_printf(" itir =%016lx\n", pte->itir); + db_printf(" tag =%016lx\n", pte->tag); + db_printf(" chain=%016lx\n", pte->chain); +} + #endif |