Module Name:    src
Committed By:   skrll
Date:           Fri Jun  4 06:36:34 UTC 2010

Modified Files:
        src/sys/arch/hp700/include: cpu.h

Log Message:
Change struct cpu_info layout to improve cache footprint.  From OpenBSD.


To generate a diff of this commit:
cvs rdiff -u -r1.47 -r1.48 src/sys/arch/hp700/include/cpu.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/hp700/include/cpu.h
diff -u src/sys/arch/hp700/include/cpu.h:1.47 src/sys/arch/hp700/include/cpu.h:1.48
--- src/sys/arch/hp700/include/cpu.h:1.47	Tue Jun  1 10:20:29 2010
+++ src/sys/arch/hp700/include/cpu.h	Fri Jun  4 06:36:34 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.h,v 1.47 2010/06/01 10:20:29 skrll Exp $	*/
+/*	$NetBSD: cpu.h,v 1.48 2010/06/04 06:36:34 skrll Exp $	*/
 
 /*	$OpenBSD: cpu.h,v 1.55 2008/07/23 17:39:35 kettenis Exp $	*/
 
@@ -220,7 +220,15 @@
 #define	cpu_need_proftick(l)	((l)->l_pflag |= LP_OWEUPC, setsoftast(l))
 
 #include <sys/cpu_data.h>
+
+/*
+ * Note that the alignment of ci_trap_save is important since we want to keep
+ * it within a single cache line.  As a result, it must be kept as the first
+ * entry within the cpu_info struct.
+ */
 struct cpu_info {
+	register_t	ci_trapsave[16];/* the "phys" part of frame */
+
 	struct cpu_data ci_data;	/* MI per-cpu data */
 
 	struct	lwp	*ci_curlwp;	/* CPU owner */
@@ -232,9 +240,7 @@
 	volatile int	ci_cpl;
 	volatile int	ci_ipending;	/* The pending interrupts. */
 	u_int		ci_intr_depth;	/* Nonzero iff running an interrupt. */
-
-	register_t	ci_trapsave[16];/* the "phys" part of frame */
-};
+} __aligned(64);
 
 
 extern struct cpu_info cpu_info_store;

Reply via email to