From: Kris Van Hees <kris.van.hees@oracle.com>
To: eugene.loh@oracle.com
Cc: dtrace@lists.linux.dev, dtrace-devel@oss.oracle.com
Subject: Re: [PATCH] Fix dt_bvar_probedesc() for late USDT processes
Date: Wed, 19 Mar 2025 14:54:18 -0400 [thread overview]
Message-ID: <Z9sS2sZiOozfT8Es@oracle.com> (raw)
In-Reply-To: <20250319063230.28171-2-eugene.loh@oracle.com>
On Wed, Mar 19, 2025 at 02:32:27AM -0400, eugene.loh@oracle.com wrote:
> From: Eugene Loh <eugene.loh@oracle.com>
>
> With commit 8bd26415b
> ("bpf: separate bvar implementation into separate functions"),
> test/unittest/usdt/tst.nusdtprobes.sh started failing reproducibly
> on all platforms.
>
> In that patch, the get_bvar() function is factored into separate
> functions. It includes a change that looks basically like this:
>
> uint32_t key = mst->prid;
>
> if (key < ((uint64_t)&NPROBES)) {
> [...]
> } else {
> char *s = bpf_map_lookup_elem(&usdt_names, &key);
> switch (idx) {
> - case DIF_VAR_PROBENAME: s += DTRACE_FUNCNAMELEN;
> + case DIF_VAR_PROBEPROV: s += DTRACE_FUNCNAMELEN;
> - case DIF_VAR_PROBEFUNC: s += DTRACE_MODNAMELEN;
> + case DIF_VAR_PROBEMOD : s += DTRACE_MODNAMELEN;
> - case DIF_VAR_PROBEMOD : s += DTRACE_PROVNAMELEN;
> + case DIF_VAR_PROBEFUNC: s += DTRACE_PROVNAMELEN;
> - case DIF_VAR_PROBEPROV:
> + case DIF_VAR_PROBENAME:
> }
> return (uint64_t)s;
> }
>
> That is, for the case of key>=NPROBES (that is, for USDT probes that
> were added after the dtrace session was started), the meanings of
> prov, mod, func, and name were exchanged.
>
> Restore the correct meanings.
>
> Signed-off-by: Eugene Loh <eugene.loh@oracle.com>
My fault. Thanks for the fix.
Reviewed-by: Kris Van Hees <kris.van.hees@oracle.com>
> ---
> bpf/get_bvar.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/bpf/get_bvar.c b/bpf/get_bvar.c
> index c760126da..fadb06c00 100644
> --- a/bpf/get_bvar.c
> +++ b/bpf/get_bvar.c
> @@ -185,13 +185,13 @@ noinline uint64_t dt_bvar_probedesc(const dt_dctx_t *dctx, uint32_t idx)
> return (uint64_t)dctx->strtab;
>
> switch (idx) {
> - case DIF_VAR_PROBEPROV:
> + case DIF_VAR_PROBENAME:
> s += DTRACE_FUNCNAMELEN;
> - case DIF_VAR_PROBEMOD:
> - s += DTRACE_MODNAMELEN;
> case DIF_VAR_PROBEFUNC:
> + s += DTRACE_MODNAMELEN;
> + case DIF_VAR_PROBEMOD:
> s += DTRACE_PROVNAMELEN;
> - case DIF_VAR_PROBENAME:
> + case DIF_VAR_PROBEPROV:
> }
>
> return (uint64_t)s;
> --
> 2.43.5
>
next prev parent reply other threads:[~2025-03-19 18:54 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-19 6:32 [PATCH] test: Account for pid:::entry ucaller being correct eugene.loh
2025-03-19 6:32 ` [PATCH] Fix dt_bvar_probedesc() for late USDT processes eugene.loh
2025-03-19 18:54 ` Kris Van Hees [this message]
2025-03-19 6:32 ` [PATCH] Copy fprobes entry args with BPF helper function eugene.loh
2025-03-19 18:58 ` Kris Van Hees
2025-03-19 6:32 ` [PATCH] test: Expect USDT argmap to fail on ARM on older kernels eugene.loh
2025-03-19 19:04 ` [DTrace-devel] " Kris Van Hees
2025-04-11 20:37 ` Kris Van Hees
2025-03-19 6:32 ` [PATCH] Get execargs from user space eugene.loh
2025-03-19 19:07 ` [DTrace-devel] " Kris Van Hees
2025-03-19 19:19 ` Eugene Loh
2025-03-19 18:53 ` [PATCH] test: Account for pid:::entry ucaller being correct Kris Van Hees
2025-04-14 23:33 ` [DTrace-devel] " Sam James
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=Z9sS2sZiOozfT8Es@oracle.com \
--to=kris.van.hees@oracle.com \
--cc=dtrace-devel@oss.oracle.com \
--cc=dtrace@lists.linux.dev \
--cc=eugene.loh@oracle.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.