summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2005-04-16 23:38:32 +0000
committermarcel <marcel@FreeBSD.org>2005-04-16 23:38:32 +0000
commit691c2c574b95bbbcc8872b75cd7b245e98f699bf (patch)
tree7f3f1dca0704a7916f27ad12782ee75aa88d40e9 /sys/ia64
parentbdb6987b1d0507edeab059f66ed6c31db98f1a65 (diff)
downloadFreeBSD-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.c20
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
OpenPOWER on IntegriCloud