diff options
-rw-r--r-- | sys/conf/NOTES | 6 | ||||
-rw-r--r-- | sys/kern/kern_cpuset.c | 14 | ||||
-rw-r--r-- | sys/kern/kern_ktr.c | 12 | ||||
-rw-r--r-- | sys/sys/_cpuset.h | 6 |
4 files changed, 21 insertions, 17 deletions
diff --git a/sys/conf/NOTES b/sys/conf/NOTES index 6b341a5..1a3e71f 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -442,8 +442,8 @@ options KTRACE_REQUEST_POOL=101 # 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 series of bitmasks each of them -# separated by the ", " characters (ie: -# KTR_CPUMASK=("0xAF, 0xFFFFFFFFFFFFFFFF")). KTR_VERBOSE enables +# separated by the "," character (ie: +# KTR_CPUMASK=0xAF,0xFFFFFFFFFFFFFFFF). 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. @@ -452,7 +452,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 # diff --git a/sys/kern/kern_cpuset.c b/sys/kern/kern_cpuset.c index 818132d..8f4014f 100644 --- a/sys/kern/kern_cpuset.c +++ b/sys/kern/kern_cpuset.c @@ -651,12 +651,12 @@ cpusetobj_strprint(char *buf, const cpuset_t *set) bytesp = 0; bufsiz = CPUSETBUFSIZ; - for (i = _NCPUWORDS - 1; i > 0; i--) { - bytesp = snprintf(tbuf, bufsiz, "%lx, ", set->__bits[i]); + for (i = 0; i < (_NCPUWORDS - 1); i++) { + bytesp = snprintf(tbuf, bufsiz, "%lx,", set->__bits[i]); bufsiz -= bytesp; tbuf += bytesp; } - snprintf(tbuf, bufsiz, "%lx", set->__bits[0]); + snprintf(tbuf, bufsiz, "%lx", set->__bits[_NCPUWORDS - 1]); return (buf); } @@ -682,16 +682,16 @@ cpusetobj_strscan(cpuset_t *set, const char *buf) return (-1); CPU_ZERO(set); - for (i = nwords - 1; i > 0; i--) { - ret = sscanf(buf, "%lx, ", &set->__bits[i]); + for (i = 0; i < (nwords - 1); i++) { + ret = sscanf(buf, "%lx,", &set->__bits[i]); if (ret == 0 || ret == -1) return (-1); - buf = strstr(buf, " "); + buf = strstr(buf, ","); if (buf == NULL) return (-1); buf++; } - ret = sscanf(buf, "%lx", &set->__bits[0]); + ret = sscanf(buf, "%lx", &set->__bits[nwords - 1]); if (ret == 0 || ret == -1) return (-1); return (0); diff --git a/sys/kern/kern_ktr.c b/sys/kern/kern_ktr.c index 6adca69..738b05a 100644 --- a/sys/kern/kern_ktr.c +++ b/sys/kern/kern_ktr.c @@ -70,6 +70,10 @@ __FBSDID("$FreeBSD$"); #define KTR_MASK (0) #endif +#ifndef KTR_CPUMASK +#define KTR_CPUMASK CPUSET_FSET +#endif + #ifndef KTR_TIME #define KTR_TIME get_cyclecount() #endif @@ -99,7 +103,7 @@ 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; +cpuset_t ktr_cpumask = CPUSET_T_INITIALIZER(KTR_CPUMASK); static char ktr_cpumask_str[CPUSETBUFSIZ]; TUNABLE_STR("debug.ktr.cpumask", ktr_cpumask_str, sizeof(ktr_cpumask_str)); @@ -107,12 +111,6 @@ 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. diff --git a/sys/sys/_cpuset.h b/sys/sys/_cpuset.h index 42a0a6a..a11c0f0 100644 --- a/sys/sys/_cpuset.h +++ b/sys/sys/_cpuset.h @@ -49,4 +49,10 @@ typedef struct _cpuset { long __bits[howmany(CPU_SETSIZE, _NCPUBITS)]; } cpuset_t; +#define CPUSET_FSET \ + [ 0 ... (_NCPUWORDS - 1) ] = (-1L) + +#define CPUSET_T_INITIALIZER(x) \ + { .__bits = { x } } + #endif /* !_SYS__CPUSET_H_ */ |