Module Name: src
Committed By: matt
Date: Sat Feb 15 10:12:47 UTC 2014
Modified Files:
src/sys/kern [matt-nb5-mips64]: kern_cpu.c
src/sys/sys [matt-nb5-mips64]: cpu.h cpu_data.h
Log Message:
Add cpu_softintr_p()
Add cpu_name to cpu_data
To generate a diff of this commit:
cvs rdiff -u -r1.36.4.2 -r1.36.4.2.4.1 src/sys/kern/kern_cpu.c
cvs rdiff -u -r1.23.4.3.4.1 -r1.23.4.3.4.2 src/sys/sys/cpu.h
cvs rdiff -u -r1.27.16.3 -r1.27.16.4 src/sys/sys/cpu_data.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/kern/kern_cpu.c
diff -u src/sys/kern/kern_cpu.c:1.36.4.2 src/sys/kern/kern_cpu.c:1.36.4.2.4.1
--- src/sys/kern/kern_cpu.c:1.36.4.2 Thu Nov 13 00:04:07 2008
+++ src/sys/kern/kern_cpu.c Sat Feb 15 10:12:47 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_cpu.c,v 1.36.4.2 2008/11/13 00:04:07 snj Exp $ */
+/* $NetBSD: kern_cpu.c,v 1.36.4.2.4.1 2014/02/15 10:12:47 matt Exp $ */
/*-
* Copyright (c) 2007, 2008 The NetBSD Foundation, Inc.
@@ -56,7 +56,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_cpu.c,v 1.36.4.2 2008/11/13 00:04:07 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_cpu.c,v 1.36.4.2.4.1 2014/02/15 10:12:47 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -111,6 +111,10 @@ mi_cpu_attach(struct cpu_info *ci)
TAILQ_INIT(&ci->ci_data.cpu_ld_locks);
__cpu_simple_lock_init(&ci->ci_data.cpu_ld_lock);
+ /* This is useful for eg, per-cpu evcnt */
+ snprintf(ci->ci_data.cpu_name, sizeof(ci->ci_data.cpu_name), "cpu%d",
+ cpu_index(ci));
+
sched_cpuattach(ci);
error = create_idle_lwp(ci);
@@ -366,3 +370,10 @@ cpu_setstate(struct cpu_info *ci, bool o
spc->spc_lastmod = time_second;
return 0;
}
+
+bool
+cpu_softintr_p(void)
+{
+
+ return (curlwp->l_pflag & LP_INTR) != 0;
+}
Index: src/sys/sys/cpu.h
diff -u src/sys/sys/cpu.h:1.23.4.3.4.1 src/sys/sys/cpu.h:1.23.4.3.4.2
--- src/sys/sys/cpu.h:1.23.4.3.4.1 Fri Apr 29 08:20:15 2011
+++ src/sys/sys/cpu.h Sat Feb 15 10:12:47 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.23.4.3.4.1 2011/04/29 08:20:15 matt Exp $ */
+/* $NetBSD: cpu.h,v 1.23.4.3.4.2 2014/02/15 10:12:47 matt Exp $ */
/*-
* Copyright (c) 2007 YAMAMOTO Takashi,
@@ -72,6 +72,7 @@ lwp_t *cpu_switchto(lwp_t *, lwp_t *, bo
struct cpu_info *cpu_lookup(u_int);
int cpu_setstate(struct cpu_info *, bool);
bool cpu_intr_p(void);
+bool cpu_softintr_p(void);
bool cpu_kpreempt_enter(uintptr_t, int);
void cpu_kpreempt_exit(uintptr_t);
bool cpu_kpreempt_disabled(void);
Index: src/sys/sys/cpu_data.h
diff -u src/sys/sys/cpu_data.h:1.27.16.3 src/sys/sys/cpu_data.h:1.27.16.4
--- src/sys/sys/cpu_data.h:1.27.16.3 Fri May 20 14:14:51 2011
+++ src/sys/sys/cpu_data.h Sat Feb 15 10:12:47 2014
@@ -90,6 +90,9 @@ struct cpu_data {
u_int cpu_nsyscall; /* syscall counter */
u_int cpu_ntrap; /* trap counter */
u_int cpu_nswtch; /* context switch counter */
+ u_int cpu_nintr; /* interrupt counter */
+ u_int cpu_nsoft; /* soft interrupt counter */
+ u_int cpu_nfault; /* pagefault counter */
void *cpu_uvm; /* uvm per-cpu data */
void *cpu_softcpu; /* soft interrupt table */
TAILQ_HEAD(,buf) cpu_biodone; /* finished block xfers */
@@ -100,6 +103,7 @@ struct cpu_data {
__cpu_simple_lock_t cpu_ld_lock; /* lockdebug */
uint64_t cpu_cc_freq; /* cycle counter frequency */
int64_t cpu_cc_skew; /* counter skew vs cpu0 */
+ char cpu_name[8]; /* eg, "cpu4" */
};
/* compat definitions */