# undef DT_DBG_AGG
# undef DT_DBG_BUF
# undef DT_DBG_DOF
+# undef DT_DBG_ENABLE
# undef DT_DBG_IOCTL
# undef DT_DBG_PROBE
# undef DT_DBG_AGG
# undef DT_DBG_BUF
# undef DT_DBG_DOF
+# undef DT_DBG_ENABLE
# undef DT_DBG_IOCTL
# undef DT_DBG_PROBE
* Here are the actual actions for the various debug cases.
*/
#ifdef DT_DBG_AGG
-# define dt_dbg_agg(fmt, ...) pr_info(fmt, ## __VA_ARGS__)
+# define dt_dbg_agg(fmt, ...) pr_info(fmt, ## __VA_ARGS__)
#else
# define dt_dbg_agg(fmt, ...)
#endif
#ifdef DT_DBG_BUF
-# define dt_dbg_buf(fmt, ...) pr_info(fmt, ## __VA_ARGS__)
+# define dt_dbg_buf(fmt, ...) pr_info(fmt, ## __VA_ARGS__)
#else
# define dt_dbg_buf(fmt, ...)
#endif
#ifdef DT_DBG_DOF
-# define dt_dbg_dof(fmt, ...) pr_info(fmt, ## __VA_ARGS__)
+# define dt_dbg_dof(fmt, ...) pr_info(fmt, ## __VA_ARGS__)
#else
# define dt_dbg_dof(fmt, ...)
#endif
+#ifdef DT_DBG_ENABLE
+# define dt_dbg_enable(fmt, ...) pr_info(fmt, ## __VA_ARGS__)
+#else
+# define dt_dbg_enable(fmt, ...)
+#endif
+
#ifdef DT_DBG_IOCTL
-# define dt_dbg_ioctl(fmt, ...) pr_info(fmt, ## __VA_ARGS__)
+# define dt_dbg_ioctl(fmt, ...) pr_info(fmt, ## __VA_ARGS__)
#else
# define dt_dbg_ioctl(fmt, ...)
#endif
#ifdef DT_DBG_PROBE
-# define dt_dbg_probe(fmt, ...) pr_info(fmt, ## __VA_ARGS__)
+# define dt_dbg_probe(fmt, ...) pr_info(fmt, ## __VA_ARGS__)
#else
# define dt_dbg_probe(fmt, ...)
#endif
enab->dten_current = ep;
enab->dten_error = 0;
- if ((matched = dtrace_probe_enable(&ep->dted_probe, enab)) < 0)
+ dt_dbg_enable(" Matching enabling %p[%d] for %s:%s:%s:%s\n",
+ enab, i, ep->dted_probe.dtpd_provider,
+ ep->dted_probe.dtpd_mod,
+ ep->dted_probe.dtpd_func,
+ ep->dted_probe.dtpd_name);
+
+ if ((matched = dtrace_probe_enable(&ep->dted_probe, enab))
+ < 0) {
+ dt_dbg_enable(" Matching enabling %p[%d] failed: "
+ "busy\n", enab, i);
return -EBUSY;
+ }
+
+ dt_dbg_enable(" Matching enabling %p[%d] found %d matches.\n",
+ enab, i, matched);
total_matched += matched;