svn commit: r314057 - head/sys/amd64/amd64

Mark Johnston markj at FreeBSD.org
Tue Feb 21 21:06:14 UTC 2017


Author: markj
Date: Tue Feb 21 21:06:12 2017
New Revision: 314057
URL: https://svnweb.freebsd.org/changeset/base/314057

Log:
  ddb show pte: use pmap of kdb_thread
  
  show pte from the pmap of the process of the current DDB thread, instead
  of necessarily the PCPU pmap.
  
  Submitted by:	Ryan Libby <rlibby at gmail.com>
  Reviewed by:	kib
  MFC after:	1 week
  Sponsored by:	Dell EMC Isilon
  Differential Revision:	https://reviews.freebsd.org/D9645

Modified:
  head/sys/amd64/amd64/pmap.c

Modified: head/sys/amd64/amd64/pmap.c
==============================================================================
--- head/sys/amd64/amd64/pmap.c	Tue Feb 21 21:01:01 2017	(r314056)
+++ head/sys/amd64/amd64/pmap.c	Tue Feb 21 21:06:12 2017	(r314057)
@@ -7239,6 +7239,7 @@ pmap_quick_remove_page(vm_offset_t addr)
 
 #include "opt_ddb.h"
 #ifdef DDB
+#include <sys/kdb.h>
 #include <ddb/ddb.h>
 
 DB_SHOW_COMMAND(pte, pmap_print_pte)
@@ -7250,13 +7251,17 @@ DB_SHOW_COMMAND(pte, pmap_print_pte)
 	pt_entry_t *pte, PG_V;
 	vm_offset_t va;
 
-	if (have_addr) {
-		va = (vm_offset_t)addr;
-		pmap = PCPU_GET(curpmap); /* XXX */
-	} else {
+	if (!have_addr) {
 		db_printf("show pte addr\n");
 		return;
 	}
+	va = (vm_offset_t)addr;
+
+	if (kdb_thread != NULL)
+		pmap = vmspace_pmap(kdb_thread->td_proc->p_vmspace);
+	else
+		pmap = PCPU_GET(curpmap);
+
 	PG_V = pmap_valid_bit(pmap);
 	pml4 = pmap_pml4e(pmap, va);
 	db_printf("VA %#016lx pml4e %#016lx", va, *pml4);


More information about the svn-src-head mailing list