[DTrace-devel] [PATCH 2/2] lockstat: refuse to provide probes on kernels < 5.10.0
Kris Van Hees
kris.van.hees at oracle.com
Fri May 26 19:26:08 UTC 2023
Kernels earlier than 5.10.0 contain a bug that causes a kernel deadlock
when using kretprobe on spinlock functions. We do not provide lockstat
probes on such kernels for the user's safety.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
libdtrace/dt_prov_lockstat.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/libdtrace/dt_prov_lockstat.c b/libdtrace/dt_prov_lockstat.c
index cc827660..60a78fda 100644
--- a/libdtrace/dt_prov_lockstat.c
+++ b/libdtrace/dt_prov_lockstat.c
@@ -9,6 +9,7 @@
#include <assert.h>
#include <errno.h>
#include <stdlib.h>
+#include <linux/version.h>
#include "dt_dctx.h"
#include "dt_cg.h"
@@ -100,6 +101,13 @@ static const dtrace_pattr_t pattr = {
*/
static int populate(dtrace_hdl_t *dtp)
{
+ /*
+ * Linux kernels earlier than 5.10.0 have a bug that can cause a kernel
+ * deadlock when placing a kretprobe on spinlock functions.
+ */
+ if (dtp->dt_kernver < KERNEL_VERSION(5, 10, 0))
+ return 0;
+
return dt_sdt_populate(dtp, prvname, modname, &dt_lockstat, &pattr,
probe_args, probes);
}
--
2.40.1
More information about the DTrace-devel
mailing list