svn commit: r216446 - in stable/8/sys/amd64: amd64 include
Jung-uk Kim
jkim at FreeBSD.org
Tue Dec 14 20:19:42 UTC 2010
Author: jkim
Date: Tue Dec 14 20:19:41 2010
New Revision: 216446
URL: http://svn.freebsd.org/changeset/base/216446
Log:
MFC: r210780
Rearrange struct pcb to make better use of cache lines.
Approved by: re (kib)
Modified:
stable/8/sys/amd64/amd64/genassym.c
stable/8/sys/amd64/include/pcb.h
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
Modified: stable/8/sys/amd64/amd64/genassym.c
==============================================================================
--- stable/8/sys/amd64/amd64/genassym.c Tue Dec 14 20:13:30 2010 (r216445)
+++ stable/8/sys/amd64/amd64/genassym.c Tue Dec 14 20:19:41 2010 (r216446)
@@ -135,7 +135,6 @@ ASSYM(PCB_RIP, offsetof(struct pcb, pcb_
ASSYM(PCB_FSBASE, offsetof(struct pcb, pcb_fsbase));
ASSYM(PCB_GSBASE, offsetof(struct pcb, pcb_gsbase));
ASSYM(PCB_KGSBASE, offsetof(struct pcb, pcb_kgsbase));
-ASSYM(PCB_FLAGS, offsetof(struct pcb, pcb_flags));
ASSYM(PCB_CR0, offsetof(struct pcb, pcb_cr0));
ASSYM(PCB_CR2, offsetof(struct pcb, pcb_cr2));
ASSYM(PCB_CR3, offsetof(struct pcb, pcb_cr3));
@@ -146,6 +145,7 @@ ASSYM(PCB_DR2, offsetof(struct pcb, pcb_
ASSYM(PCB_DR3, offsetof(struct pcb, pcb_dr3));
ASSYM(PCB_DR6, offsetof(struct pcb, pcb_dr6));
ASSYM(PCB_DR7, offsetof(struct pcb, pcb_dr7));
+ASSYM(PCB_FLAGS, offsetof(struct pcb, pcb_flags));
ASSYM(PCB_ONFAULT, offsetof(struct pcb, pcb_onfault));
ASSYM(PCB_GS32SD, offsetof(struct pcb, pcb_gs32sd));
ASSYM(PCB_TSSP, offsetof(struct pcb, pcb_tssp));
Modified: stable/8/sys/amd64/include/pcb.h
==============================================================================
--- stable/8/sys/amd64/include/pcb.h Tue Dec 14 20:13:30 2010 (r216445)
+++ stable/8/sys/amd64/include/pcb.h Tue Dec 14 20:19:41 2010 (r216446)
@@ -55,15 +55,6 @@ struct pcb {
register_t pcb_fsbase;
register_t pcb_gsbase;
register_t pcb_kgsbase;
- u_long pcb_flags;
-#define PCB_DBREGS 0x02 /* process using debug registers */
-#define PCB_KERNFPU 0x04 /* kernel uses fpu */
-#define PCB_FPUINITDONE 0x08 /* fpu state is initialized */
-#define PCB_USERFPUINITDONE 0x10 /* fpu user state is initialized */
-#define PCB_GS32BIT 0x20 /* linux gs switch */
-#define PCB_32BIT 0x40 /* process has 32 bit context (segs etc) */
-#define PCB_FULLCTX 0x80 /* full context restore on sysret */
-
register_t pcb_cr0;
register_t pcb_cr2;
register_t pcb_cr3;
@@ -75,6 +66,15 @@ struct pcb {
register_t pcb_dr6;
register_t pcb_dr7;
+ u_long pcb_flags;
+#define PCB_DBREGS 0x02 /* process using debug registers */
+#define PCB_KERNFPU 0x04 /* kernel uses fpu */
+#define PCB_FPUINITDONE 0x08 /* fpu state is initialized */
+#define PCB_USERFPUINITDONE 0x10 /* fpu user state is initialized */
+#define PCB_GS32BIT 0x20 /* linux gs switch */
+#define PCB_32BIT 0x40 /* process has 32 bit context (segs etc) */
+#define PCB_FULLCTX 0x80 /* full context restore on sysret */
+
uint16_t pcb_initial_fpucw;
caddr_t pcb_onfault; /* copyin/out fault recovery */
More information about the svn-src-all
mailing list