Date: Tue, 31 May 2011 20:23:33 +0000 (UTC) From: Attilio Rao <attilio@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r222545 - in projects/largeSMP/sys: conf kern sparc64/include sys Message-ID: <201105312023.p4VKNXbt038764@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: attilio Date: Tue May 31 20:23:33 2011 New Revision: 222545 URL: http://svn.freebsd.org/changeset/base/222545 Log: Revert a change that crept in during MFC. Modified: projects/largeSMP/sys/conf/NOTES projects/largeSMP/sys/kern/kern_cpuset.c projects/largeSMP/sys/kern/kern_ktr.c projects/largeSMP/sys/sparc64/include/ktr.h projects/largeSMP/sys/sys/cpuset.h projects/largeSMP/sys/sys/ktr.h Modified: projects/largeSMP/sys/conf/NOTES ============================================================================== --- projects/largeSMP/sys/conf/NOTES Tue May 31 19:45:58 2011 (r222544) +++ projects/largeSMP/sys/conf/NOTES Tue May 31 20:23:33 2011 (r222545) @@ -432,10 +432,7 @@ options KTRACE_REQUEST_POOL=101 # defined by the KTR_* constants in <sys/ktr.h>. KTR_MASK defines the # initial value of the ktr_mask variable which determines at runtime # what events to trace. KTR_CPUMASK determines which CPU's log -# events, with bit X corresponding to CPU X. The layout of the string -# passed as KTR_CPUMASK must match a serie of bitmasks each of them -# separated by the ", " characters (ie: -# KTR_CPUMASK=("0xAF, 0xFFFFFFFFFFFFFFFF")). KTR_VERBOSE enables +# events, with bit X corresponding to CPU X. KTR_VERBOSE enables # dumping of KTR events to the console by default. This functionality # can be toggled via the debug.ktr_verbose sysctl and defaults to off # if KTR_VERBOSE is not defined. See ktr(4) and ktrdump(8) for details. @@ -444,7 +441,7 @@ options KTR options KTR_ENTRIES=1024 options KTR_COMPILE=(KTR_INTR|KTR_PROC) options KTR_MASK=KTR_INTR -options KTR_CPUMASK=("0x3") +options KTR_CPUMASK=0x3 options KTR_VERBOSE # Modified: projects/largeSMP/sys/kern/kern_cpuset.c ============================================================================== --- projects/largeSMP/sys/kern/kern_cpuset.c Tue May 31 19:45:58 2011 (r222544) +++ projects/largeSMP/sys/kern/kern_cpuset.c Tue May 31 20:23:33 2011 (r222545) @@ -50,7 +50,6 @@ __FBSDID("$FreeBSD$"); #include <sys/cpuset.h> #include <sys/sx.h> #include <sys/queue.h> -#include <sys/libkern.h> #include <sys/limits.h> #include <sys/bus.h> #include <sys/interrupt.h> @@ -661,41 +660,6 @@ cpusetobj_strprint(char *buf, const cpus } /* - * Build a valid cpuset_t object from a string representation. - * It expects an incoming buffer at least sized as CPUSETBUFSIZ. - */ -int -cpusetobj_strscan(cpuset_t *set, const char *buf) -{ - u_int nwords; - int i; - - if (strlen(buf) > CPUSETBUFSIZ - 1) - return (-1); - - /* Allow to pass a shorter version of the mask when necessary. */ - nwords = 1; - for (i = 0; buf[i] != '\0'; i++) - if (buf[i] == ',') - nwords++; - if (nwords > _NCPUWORDS) - return (-1); - - CPU_ZERO(set); - for (i = nwords - 1; i > 0; i--) { - if (!sscanf(buf, "%lx, ", &set->__bits[i])) - return (-1); - buf = strstr(buf, " "); - if (buf == NULL) - return (-1); - buf++; - } - if (!sscanf(buf, "%lx", &set->__bits[0])) - return (-1); - return (0); -} - -/* * Apply an anonymous mask to a single thread. */ int Modified: projects/largeSMP/sys/kern/kern_ktr.c ============================================================================== --- projects/largeSMP/sys/kern/kern_ktr.c Tue May 31 19:45:58 2011 (r222544) +++ projects/largeSMP/sys/kern/kern_ktr.c Tue May 31 20:23:33 2011 (r222545) @@ -40,10 +40,8 @@ __FBSDID("$FreeBSD$"); #include "opt_alq.h" #include <sys/param.h> -#include <sys/queue.h> #include <sys/alq.h> #include <sys/cons.h> -#include <sys/cpuset.h> #include <sys/kernel.h> #include <sys/ktr.h> #include <sys/libkern.h> @@ -70,6 +68,10 @@ __FBSDID("$FreeBSD$"); #define KTR_MASK (0) #endif +#ifndef KTR_CPUMASK +#define KTR_CPUMASK (~0) +#endif + #ifndef KTR_TIME #define KTR_TIME get_cyclecount() #endif @@ -82,6 +84,11 @@ FEATURE(ktr, "Kernel support for KTR ker SYSCTL_NODE(_debug, OID_AUTO, ktr, CTLFLAG_RD, 0, "KTR options"); +int ktr_cpumask = KTR_CPUMASK; +TUNABLE_INT("debug.ktr.cpumask", &ktr_cpumask); +SYSCTL_INT(_debug_ktr, OID_AUTO, cpumask, CTLFLAG_RW, + &ktr_cpumask, 0, "Bitmask of CPUs on which KTR logging is enabled"); + int ktr_mask = KTR_MASK; TUNABLE_INT("debug.ktr.mask", &ktr_mask); SYSCTL_INT(_debug_ktr, OID_AUTO, mask, CTLFLAG_RW, @@ -99,54 +106,6 @@ int ktr_version = KTR_VERSION; SYSCTL_INT(_debug_ktr, OID_AUTO, version, CTLFLAG_RD, &ktr_version, 0, "Version of the KTR interface"); -cpuset_t ktr_cpumask; -static char ktr_cpumask_str[CPUSETBUFSIZ]; -TUNABLE_STR("debug.ktr.cpumask", ktr_cpumask_str, sizeof(ktr_cpumask_str)); - -static void -ktr_cpumask_initializer(void *dummy __unused) -{ - - CPU_FILL(&ktr_cpumask); -#ifdef KTR_CPUMASK - if (cpusetobj_strscan(&ktr_cpumask, KTR_CPUMASK) == -1) - CPU_FILL(&ktr_cpumask); -#endif - - /* - * TUNABLE_STR() runs with SI_ORDER_MIDDLE priority, thus it must be - * already set, if necessary. - */ - if (ktr_cpumask_str[0] != '\0' && - cpusetobj_strscan(&ktr_cpumask, ktr_cpumask_str) == -1) - CPU_FILL(&ktr_cpumask); -} -SYSINIT(ktr_cpumask_initializer, SI_SUB_TUNABLES, SI_ORDER_ANY, - ktr_cpumask_initializer, NULL); - -static int -sysctl_debug_ktr_cpumask(SYSCTL_HANDLER_ARGS) -{ - char lktr_cpumask_str[CPUSETBUFSIZ]; - cpuset_t imask; - int error; - - memset(lktr_cpumask_str, 0, sizeof(lktr_cpumask_str)); - error = sysctl_handle_string(oidp, lktr_cpumask_str, - sizeof(lktr_cpumask_str), req); - if (error != 0 || req->newptr == NULL) - return (error); - if (cpusetobj_strscan(&imask, lktr_cpumask_str) == -1) - return (EINVAL); - CPU_COPY(&imask, &ktr_cpumask); - - return (error); -} -SYSCTL_PROC(_debug_ktr, OID_AUTO, cpumask, - CTLFLAG_RW | CTLFLAG_MPSAFE | CTLTYPE_STRING, NULL, 0, - sysctl_debug_ktr_cpumask, "S", - "Bitmask of CPUs on which KTR logging is enabled"); - volatile int ktr_idx = 0; struct ktr_entry ktr_buf[KTR_ENTRIES]; @@ -254,7 +213,7 @@ ktr_tracepoint(u_int mask, const char *f if ((ktr_mask & mask) == 0) return; cpu = KTR_CPU; - if (!CPU_ISSET(cpu, &ktr_cpumask)) + if (((1 << cpu) & ktr_cpumask) == 0) return; #if defined(KTR_VERBOSE) || defined(KTR_ALQ) td = curthread; Modified: projects/largeSMP/sys/sparc64/include/ktr.h ============================================================================== --- projects/largeSMP/sys/sparc64/include/ktr.h Tue May 31 19:45:58 2011 (r222544) +++ projects/largeSMP/sys/sparc64/include/ktr.h Tue May 31 20:23:33 2011 (r222545) @@ -85,9 +85,7 @@ l2: add r2, 1, r3 ; \ lduw [PCPU(MID)], r1 ; \ mov 1, r2 ; \ sllx r2, r1, r1 ; \ -#ifdef notyet \ TEST(ktr_cpumask, r1, r2, r3, l3) ; \ -#endif \ ATR(desc, r1, r2, r3, l1, l2) #endif /* LOCORE */ Modified: projects/largeSMP/sys/sys/cpuset.h ============================================================================== --- projects/largeSMP/sys/sys/cpuset.h Tue May 31 19:45:58 2011 (r222544) +++ projects/largeSMP/sys/sys/cpuset.h Tue May 31 20:23:33 2011 (r222545) @@ -214,7 +214,6 @@ int cpuset_create_root(struct prison *, int cpuset_setproc_update_set(struct proc *, struct cpuset *); int cpusetobj_ffs(const cpuset_t *); char *cpusetobj_strprint(char *, const cpuset_t *); -int cpusetobj_strscan(cpuset_t *, const char *); #else __BEGIN_DECLS Modified: projects/largeSMP/sys/sys/ktr.h ============================================================================== --- projects/largeSMP/sys/sys/ktr.h Tue May 31 19:45:58 2011 (r222544) +++ projects/largeSMP/sys/sys/ktr.h Tue May 31 20:23:33 2011 (r222545) @@ -97,9 +97,6 @@ #ifndef LOCORE -#include <sys/param.h> -#include <sys/_cpuset.h> - struct ktr_entry { u_int64_t ktr_timestamp; int ktr_cpu; @@ -110,7 +107,7 @@ struct ktr_entry { u_long ktr_parms[KTR_PARMS]; }; -extern cpuset_t ktr_cpumask; +extern int ktr_cpumask; extern int ktr_mask; extern int ktr_entries; extern int ktr_verbose;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201105312023.p4VKNXbt038764>