Author: kib
Date: Wed Feb 20 09:46:44 2019
New Revision: 344352
URL: https://svnweb.freebsd.org/changeset/base/344352

Log:
  amd64: add defines and decode protection keys and SGX page faults reasons.
  
  Reviewed by:  markj
  Tested by:    pho
  Sponsored by: The FreeBSD Foundation
  MFC after:    2 weeks
  Differential revision:        https://reviews.freebsd.org/D18893

Modified:
  head/sys/amd64/amd64/trap.c
  head/sys/amd64/include/pmap.h

Modified: head/sys/amd64/amd64/trap.c
==============================================================================
--- head/sys/amd64/amd64/trap.c Wed Feb 20 09:38:19 2019        (r344351)
+++ head/sys/amd64/amd64/trap.c Wed Feb 20 09:46:44 2019        (r344352)
@@ -885,10 +885,12 @@ trap_fatal(frame, eva)
 #endif
        if (type == T_PAGEFLT) {
                printf("fault virtual address   = 0x%lx\n", eva);
-               printf("fault code              = %s %s %s, %s\n",
+               printf("fault code              = %s %s %s%s%s, %s\n",
                        code & PGEX_U ? "user" : "supervisor",
                        code & PGEX_W ? "write" : "read",
                        code & PGEX_I ? "instruction" : "data",
+                       code & PGEX_PK ? " prot key" : " ",
+                       code & PGEX_SGX ? " SGX" : " ",
                        code & PGEX_RSV ? "reserved bits in PTE" :
                        code & PGEX_P ? "protection violation" : "page not 
present");
        }

Modified: head/sys/amd64/include/pmap.h
==============================================================================
--- head/sys/amd64/include/pmap.h       Wed Feb 20 09:38:19 2019        
(r344351)
+++ head/sys/amd64/include/pmap.h       Wed Feb 20 09:46:44 2019        
(r344352)
@@ -131,6 +131,8 @@
 #define PGEX_U         0x04    /* access from User mode (UPL) */
 #define PGEX_RSV       0x08    /* reserved PTE field is non-zero */
 #define PGEX_I         0x10    /* during an instruction fetch */
+#define        PGEX_PK         0x20    /* protection key violation */
+#define        PGEX_SGX        0x40    /* SGX-related */
 
 /* 
  * undef the PG_xx macros that define bits in the regular x86 PTEs that
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to