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