Module Name: src
Committed By: ad
Date: Fri May 8 22:10:09 UTC 2020
Modified Files:
src/external/cddl/osnet/dev/cyclic: cyclic.c
src/sys/kern: kern_clock.c
Log Message:
Run Solaris cyclics from statclock() so dtrace isn't locked out by IPL_SCHED
(assuming the machine has a separate statclock() which almost all don't).
To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/external/cddl/osnet/dev/cyclic/cyclic.c
cvs rdiff -u -r1.140 -r1.141 src/sys/kern/kern_clock.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/cddl/osnet/dev/cyclic/cyclic.c
diff -u src/external/cddl/osnet/dev/cyclic/cyclic.c:1.8 src/external/cddl/osnet/dev/cyclic/cyclic.c:1.9
--- src/external/cddl/osnet/dev/cyclic/cyclic.c:1.8 Mon May 28 21:05:02 2018
+++ src/external/cddl/osnet/dev/cyclic/cyclic.c Fri May 8 22:10:08 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: cyclic.c,v 1.8 2018/05/28 21:05:02 chs Exp $ */
+/* $NetBSD: cyclic.c,v 1.9 2020/05/08 22:10:08 ad Exp $ */
/*
* CDDL HEADER START
@@ -347,7 +347,7 @@
#include <sys/xcall.h>
#undef mutex_init
-#define mtx_init(m, d, p, f) mutex_init(m, MUTEX_DEFAULT, IPL_CLOCK)
+#define mtx_init(m, d, p, f) mutex_init(m, MUTEX_DEFAULT, IPL_HIGH)
#define mtx_lock_spin(x) mutex_spin_enter(x)
#define mtx_unlock_spin(x) mutex_spin_exit(x)
#define mtx_destroy(x) mutex_destroy(x)
Index: src/sys/kern/kern_clock.c
diff -u src/sys/kern/kern_clock.c:1.140 src/sys/kern/kern_clock.c:1.141
--- src/sys/kern/kern_clock.c:1.140 Thu Apr 2 16:29:30 2020
+++ src/sys/kern/kern_clock.c Fri May 8 22:10:09 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_clock.c,v 1.140 2020/04/02 16:29:30 maxv Exp $ */
+/* $NetBSD: kern_clock.c,v 1.141 2020/05/08 22:10:09 ad Exp $ */
/*-
* Copyright (c) 2000, 2004, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -69,7 +69,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_clock.c,v 1.140 2020/04/02 16:29:30 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_clock.c,v 1.141 2020/05/08 22:10:09 ad Exp $");
#ifdef _KERNEL_OPT
#include "opt_dtrace.h"
@@ -257,13 +257,6 @@ hardclock(struct clockframe *frame)
* Update real-time timeout queue.
*/
callout_hardclock();
-
-#ifdef KDTRACE_HOOKS
- cyclic_clock_func_t func = cyclic_clock_func[cpu_index(ci)];
- if (func) {
- (*func)((struct clockframe *)frame);
- }
-#endif
}
/*
@@ -431,6 +424,13 @@ statclock(struct clockframe *frame)
atomic_inc_uint(&l->l_cpticks);
mutex_spin_exit(&p->p_stmutex);
}
+
+#ifdef KDTRACE_HOOKS
+ cyclic_clock_func_t func = cyclic_clock_func[cpu_index(ci)];
+ if (func) {
+ (*func)((struct clockframe *)frame);
+ }
+#endif
}
/*