svn commit: r338500 - head/sys/powerpc/include

Breno Leitao leitao at FreeBSD.org
Thu Sep 6 17:07:22 UTC 2018


Author: leitao
Date: Thu Sep  6 17:07:21 2018
New Revision: 338500
URL: https://svnweb.freebsd.org/changeset/base/338500

Log:
  powerpc64: Add initial support for HTM (kABI)
  
  This patch adds the very initial support for HTM that might come at FreeBSD
  version 12.1. This basic support defines a new kABI, so, we do not need to change
  it later during 12.1 time frame, when the full implementation will come.
  
  Reviewed by: jhibbits
  Approved by: re(marius), jhibbits (mentor)
  Differential Revision: https://reviews.freebsd.org/D16889

Modified:
  head/sys/powerpc/include/pcb.h
  head/sys/powerpc/include/pcpu.h

Modified: head/sys/powerpc/include/pcb.h
==============================================================================
--- head/sys/powerpc/include/pcb.h	Thu Sep  6 16:17:45 2018	(r338499)
+++ head/sys/powerpc/include/pcb.h	Thu Sep  6 17:07:21 2018	(r338500)
@@ -56,6 +56,7 @@ struct pcb {
 #define	PCB_VEC		0x4	/* Process had Altivec initialized */
 #define	PCB_VSX		0x8	/* Process had VSX initialized */
 #define	PCB_CDSCR	0x10	/* Process had Custom DSCR initialized */
+#define	PCB_HTM		0x20	/* Process had HTM initialized */
 	struct fpu {
 		union {
 			double fpr;
@@ -73,6 +74,11 @@ struct pcb {
 	} pcb_vec __aligned(16);	/* Vector processor */
 	unsigned int	pcb_veccpu;		/* which CPU had our vector
 							stuff. */
+	struct htm {
+		uint64_t tfhar;
+		uint64_t texasr;
+		uint64_t tfiar;
+	} pcb_htm;
 
 	union {
 		struct {

Modified: head/sys/powerpc/include/pcpu.h
==============================================================================
--- head/sys/powerpc/include/pcpu.h	Thu Sep  6 16:17:45 2018	(r338499)
+++ head/sys/powerpc/include/pcpu.h	Thu Sep  6 17:07:21 2018	(r338500)
@@ -45,6 +45,7 @@ struct pvo_entry;
 	struct pmap	*pc_curpmap;		/* current pmap */	\
 	struct thread	*pc_fputhread;		/* current fpu user */  \
 	struct thread	*pc_vecthread;		/* current vec user */  \
+	struct thread	*pc_htmthread;		/* current htm user */  \
 	uintptr_t	pc_hwref;					\
 	int		pc_bsp;						\
 	volatile int	pc_awake;					\


More information about the svn-src-head mailing list