Print this page
8956 Implement KPTI
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
9210 remove KMDB branch debugging support
9211 ::crregs could do with cr2/cr3 support
9209 ::ttrace should be able to filter by thread
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Reviewed by: Yuri Pankov <yuripv@yuripv.net>
*** 18,28 ****
*
* CDDL HEADER END
*/
/*
* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
! * Copyright 2015, Joyent, Inc.
*/
#ifndef _SYS_CONTROLREGS_H
#define _SYS_CONTROLREGS_H
--- 18,28 ----
*
* CDDL HEADER END
*/
/*
* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
! * Copyright 2018, Joyent, Inc.
*/
#ifndef _SYS_CONTROLREGS_H
#define _SYS_CONTROLREGS_H
*** 86,98 ****
/* CR3 Register */
#define CR3_PCD 0x00000010 /* cache disable */
#define CR3_PWT 0x00000008 /* write through */
- #define FMT_CR3 "\20\5pcd\4pwt"
-
/* CR4 Register */
#define CR4_VME 0x0001 /* virtual-8086 mode extensions */
#define CR4_PVI 0x0002 /* protected-mode virtual interrupts */
#define CR4_TSD 0x0004 /* time stamp disable */
--- 86,104 ----
/* CR3 Register */
#define CR3_PCD 0x00000010 /* cache disable */
#define CR3_PWT 0x00000008 /* write through */
+ #if defined(_ASM)
+ #define CR3_NOINVL_BIT 0x8000000000000000
+ #else
+ #define CR3_NOINVL_BIT 0x8000000000000000ULL /* no invalidation */
+ #endif
+ #define PCID_NONE 0x000 /* generic PCID */
+ #define PCID_KERNEL 0x000 /* kernel's PCID */
+ #define PCID_USER 0x001 /* user-space PCID */
/* CR4 Register */
#define CR4_VME 0x0001 /* virtual-8086 mode extensions */
#define CR4_PVI 0x0002 /* protected-mode virtual interrupts */
#define CR4_TSD 0x0004 /* time stamp disable */
*** 106,121 ****
#define CR4_OSXMMEXCPT 0x0400 /* OS unmasked exception support */
/* 0x0800 reserved */
/* 0x1000 reserved */
#define CR4_VMXE 0x2000
#define CR4_SMXE 0x4000
#define CR4_OSXSAVE 0x40000 /* OS xsave/xrestore support */
#define CR4_SMEP 0x100000 /* NX for user pages in kernel */
#define CR4_SMAP 0x200000 /* kernel can't access user pages */
#define FMT_CR4 \
! "\20\26smap\25smep\23osxsav" \
"\17smxe\16vmxe\13xmme\12fxsr\11pce\10pge" \
"\7mce\6pae\5pse\4de\3tsd\2pvi\1vme"
/*
* Enable the SSE-related control bits to explain to the processor that
--- 112,128 ----
#define CR4_OSXMMEXCPT 0x0400 /* OS unmasked exception support */
/* 0x0800 reserved */
/* 0x1000 reserved */
#define CR4_VMXE 0x2000
#define CR4_SMXE 0x4000
+ #define CR4_PCIDE 0x20000 /* PCID enable */
#define CR4_OSXSAVE 0x40000 /* OS xsave/xrestore support */
#define CR4_SMEP 0x100000 /* NX for user pages in kernel */
#define CR4_SMAP 0x200000 /* kernel can't access user pages */
#define FMT_CR4 \
! "\20\26smap\25smep\23osxsav\22pcide" \
"\17smxe\16vmxe\13xmme\12fxsr\11pce\10pge" \
"\7mce\6pae\5pse\4de\3tsd\2pvi\1vme"
/*
* Enable the SSE-related control bits to explain to the processor that