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 */

Reply via email to