public inbox for dtrace@lists.linux.dev
 help / color / mirror / Atom feed
From: eugene.loh@oracle.com
To: dtrace@lists.linux.dev, dtrace-devel@oss.oracle.com
Subject: [PATCH 05/19] Add flag to dt_pid_create_probes()
Date: Thu, 29 Aug 2024 01:25:44 -0400	[thread overview]
Message-ID: <20240829052558.3525-5-eugene.loh@oracle.com> (raw)
In-Reply-To: <20240829052558.3525-1-eugene.loh@oracle.com>

From: Eugene Loh <eugene.loh@oracle.com>

The function dt_pid_create_probes() creates both pid and usdt probes.
Once the dtrace session has started, however, we only need to watch
for new usdt probes.  So add a usdt_only argument to the function.

Signed-off-by: Eugene Loh <eugene.loh@oracle.com>
---
 libdtrace/dt_cc.c  | 2 +-
 libdtrace/dt_pid.c | 4 ++--
 libdtrace/dt_pid.h | 3 +--
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/libdtrace/dt_cc.c b/libdtrace/dt_cc.c
index e66d76fb..cfd4d3d1 100644
--- a/libdtrace/dt_cc.c
+++ b/libdtrace/dt_cc.c
@@ -282,7 +282,7 @@ dt_setcontext(dtrace_hdl_t *dtp, const dtrace_probedesc_t *pdp)
 	    isdigit(pdp->prv[strlen(pdp->prv) - 1]) &&
 	    ((pvp = dt_provider_lookup(dtp, pdp->prv)) == NULL ||
 	     pvp->pv_flags & DT_PROVIDER_PID) &&
-	    dt_pid_create_probes((dtrace_probedesc_t *)pdp, dtp, yypcb) != 0) {
+	    dt_pid_create_probes((dtrace_probedesc_t *)pdp, dtp, yypcb, 0) != 0) {
 		longjmp(yypcb->pcb_jmpbuf, EDT_COMPILER);
 	}
 
diff --git a/libdtrace/dt_pid.c b/libdtrace/dt_pid.c
index 996543b1..3f3453af 100644
--- a/libdtrace/dt_pid.c
+++ b/libdtrace/dt_pid.c
@@ -1095,7 +1095,7 @@ dt_pid_get_pid(const dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp, dt_pcb_t *pcb,
 }
 
 int
-dt_pid_create_probes(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp, dt_pcb_t *pcb)
+dt_pid_create_probes(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp, dt_pcb_t *pcb, int usdt_only)
 {
 	char provname[DTRACE_PROVNAMELEN];
 	dt_proc_t *dpr;
@@ -1109,7 +1109,7 @@ dt_pid_create_probes(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp, dt_pcb_t *pcb)
 
 	snprintf(provname, sizeof(provname), "pid%d", (int)pid);
 
-	if (gmatch(provname, pdp->prv) != 0) {
+	if ((usdt_only == 0) && gmatch(provname, pdp->prv) != 0) {
 		if (dt_proc_grab_lock(dtp, pid, DTRACE_PROC_WAITING) < 0) {
 			dt_pid_error(dtp, pcb, NULL, D_PROC_GRAB,
 			    "failed to grab process %d", (int)pid);
diff --git a/libdtrace/dt_pid.h b/libdtrace/dt_pid.h
index 497c7751..dc200f4d 100644
--- a/libdtrace/dt_pid.h
+++ b/libdtrace/dt_pid.h
@@ -16,8 +16,7 @@
 extern "C" {
 #endif
 
-extern int dt_pid_create_probes(dtrace_probedesc_t *, dtrace_hdl_t *,
-				dt_pcb_t *);
+extern int dt_pid_create_probes(dtrace_probedesc_t *, dtrace_hdl_t *, dt_pcb_t *, int);
 extern int dt_pid_create_probes_module(dtrace_hdl_t *, dt_proc_t *);
 extern pid_t dt_pid_get_pid(const dtrace_probedesc_t *, dtrace_hdl_t *, dt_pcb_t *,
 			    dt_proc_t *);
-- 
2.43.5


  parent reply	other threads:[~2024-08-29  5:26 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-29  5:25 [PATCH 01/19] Change probes from having lists of clauses to lists of stmts eugene.loh
2024-08-29  5:25 ` [PATCH 02/19] Add a hook for a provider-specific "update" function eugene.loh
2024-08-29  5:25 ` [PATCH 03/19] Widen the EPID to include the PRID eugene.loh
2024-08-29 20:28   ` [DTrace-devel] " Sam James
2024-08-29 20:38     ` Kris Van Hees
2024-08-29  5:25 ` [PATCH 04/19] Eliminate dt_pdesc eugene.loh
2024-09-03 17:47   ` Eugene Loh
2024-08-29  5:25 ` eugene.loh [this message]
2024-09-18 20:33   ` [PATCH 05/19] Add flag to dt_pid_create_probes() Kris Van Hees
2024-09-24 20:24     ` Eugene Loh
2024-08-29  5:25 ` [PATCH 06/19] Allow for USDT wildcards eugene.loh
2024-09-17 17:34   ` Eugene Loh
2024-08-29  5:25 ` [PATCH 07/19] Create the BPF usdt_prids map eugene.loh
2024-08-29  5:25 ` [PATCH 08/19] Support multiple overlying probes in the uprobe trampoline eugene.loh
2024-10-24  2:42   ` Kris Van Hees
2024-10-24 13:52     ` [DTrace-devel] " Kris Van Hees
2024-10-24 23:30       ` Eugene Loh
2024-10-25  0:14         ` Kris Van Hees
2024-08-29  5:25 ` [PATCH 09/19] Use usdt_prids map to call clauses conditionally for USDT probes eugene.loh
2024-08-29  5:25 ` [PATCH 10/19] Remove the is-enabled provider eugene.loh
2024-10-24 15:18   ` Kris Van Hees
2024-10-26  1:13     ` Eugene Loh
2024-08-29  5:25 ` [PATCH 11/19] Support USDT wildcard provider descriptions eugene.loh
2024-08-29  5:25 ` [PATCH 12/19] Increase size of BPF probes map eugene.loh
2024-08-29 20:30   ` [DTrace-devel] " Sam James
2024-10-08 22:15   ` Eugene Loh
2024-08-29  5:25 ` [PATCH 13/19] Get rid of relocatable EPID, dt_nextepid, and dt_ddesc[] eugene.loh
2024-09-03 17:49   ` Eugene Loh
2024-08-29  5:25 ` [PATCH 14/19] Ignore clauses in USDT trampoline if we know they are impossible eugene.loh
2024-08-29  5:25 ` [PATCH 15/19] Ignore clauses: some clauses are impossible regardless of uprp eugene.loh
2024-08-29 20:31   ` [DTrace-devel] " Sam James
2024-09-03 19:54     ` Eugene Loh
2024-09-03 20:10       ` Kris Van Hees
2024-08-29  5:25 ` [PATCH 16/19] Ignore clauses: use underlying probe's function information eugene.loh
2024-10-24 16:52   ` Kris Van Hees
2024-08-29  5:25 ` [PATCH 17/19] test: Add a pid-USDT test eugene.loh
2024-08-29 20:32   ` [DTrace-devel] " Sam James
2024-10-04  4:49     ` Eugene Loh
2024-10-04  5:51       ` Sam James
2024-08-29  5:25 ` [PATCH 18/19] test: Add a lazy USDT test eugene.loh
2024-09-28  2:11   ` Eugene Loh
2024-08-29  5:25 ` [PATCH 19/19] test: Add another USDT open/close test eugene.loh
2024-10-24 17:01   ` Kris Van Hees
2024-09-18 14:18 ` [PATCH 01/19] Change probes from having lists of clauses to lists of stmts Kris Van Hees

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240829052558.3525-5-eugene.loh@oracle.com \
    --to=eugene.loh@oracle.com \
    --cc=dtrace-devel@oss.oracle.com \
    --cc=dtrace@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox