[DTrace-devel] [PATCH v2] lockstat: refuse to provide probes on kernels < 5.10.0

Kris Van Hees kris.van.hees at oracle.com
Fri May 26 20:00:54 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
@@ -100,6 +100,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 < DT_VERSION_NUMBER(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