From: Sunil Kumar Kori <skori@marvell.com>
To: David Marchand <david.marchand@redhat.com>,
"dev@dpdk.org" <dev@dpdk.org>
Cc: "skori@mavell.com" <skori@mavell.com>,
Jerin Jacob Kollanukkaran <jerinj@marvell.com>,
"stable@dpdk.org" <stable@dpdk.org>
Subject: RE: [EXT] [PATCH v2 5/9] trace: fix dynamically enabling trace points
Date: Wed, 12 Oct 2022 09:23:58 +0000 [thread overview]
Message-ID: <CO6PR18MB38601EC934967A27C65011B9B4229@CO6PR18MB3860.namprd18.prod.outlook.com> (raw)
In-Reply-To: <20221004094418.196544-6-david.marchand@redhat.com>
> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Tuesday, October 4, 2022 3:14 PM
> To: dev@dpdk.org
> Cc: skori@mavell.com; Jerin Jacob Kollanukkaran <jerinj@marvell.com>;
> stable@dpdk.org; Sunil Kumar Kori <skori@marvell.com>
> Subject: [EXT] [PATCH v2 5/9] trace: fix dynamically enabling trace points
>
> External Email
>
> ----------------------------------------------------------------------
> Enabling trace points at runtime was not working if no trace point had been
> enabled first at rte_eal_init() time. The reason was that trace.args reflected
> the arguments passed to --trace= EAL option.
>
> To fix this:
> - the trace subsystem initialisation is updated: trace directory
> creation is deferred to when traces are dumped (to avoid creating
> directories that may not be used),
> - per lcore memory allocation still relies on rte_trace_is_enabled() but
> this helper now tracks if any trace point is enabled. The
> documentation is updated accordingly,
> - cleanup helpers must always be called in rte_eal_cleanup() since some
> trace points might have been enabled and disabled in the lifetime of
> the DPDK application,
>
> With this fix, we can update the unit test and check that a trace point callback
> is invoked when expected.
>
> Note:
> - the 'trace' global variable might be shadowed with the argument
> passed to the functions dealing with trace point handles.
> 'tp' has been used for referring to trace_point object.
> Prefer 't' for referring to handles,
>
> Fixes: 84c4fae4628f ("trace: implement operation APIs")
> Cc: stable@dpdk.org
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
> Changes since v1:
> - restored level to INFO for trace directory log message,
> - moved trace_mkdir() to rte_trace_save,
>
> ---
> app/test/test_trace.c | 20 ++++++++++
> app/test/test_trace.h | 2 +
> doc/guides/prog_guide/trace_lib.rst | 14 +++++--
> lib/eal/common/eal_common_trace.c | 53 ++++++++++---------------
> lib/eal/common/eal_common_trace_utils.c | 11 ++++-
> lib/eal/common/eal_trace.h | 3 +-
> 6 files changed, 65 insertions(+), 38 deletions(-)
>
[snip]
> diff --git a/lib/eal/common/eal_common_trace_utils.c
> b/lib/eal/common/eal_common_trace_utils.c
> index 2b55dbec65..7bf1c05e12 100644
> --- a/lib/eal/common/eal_common_trace_utils.c
> +++ b/lib/eal/common/eal_common_trace_utils.c
> @@ -314,14 +314,18 @@ trace_dir_default_path_get(char *dir_path)
> return 0;
> }
>
> -int
> +static int
> trace_mkdir(void)
> {
> struct trace *trace = trace_obj_get();
> char session[TRACE_DIR_STR_LEN];
> + static bool already_done;
> char *dir_path;
> int rc;
>
> + if (already_done)
> + return 0;
> +
As trace_mkdir() call is being moved to rte_trace_save() so there won't be another context which will be invoking trace_mkdir().
So is this logic still needed here ?
> if (!trace->dir_offset) {
> dir_path = calloc(1, sizeof(trace->dir));
> if (dir_path == NULL) {
> @@ -365,6 +369,7 @@ trace_mkdir(void)
> }
>
> RTE_LOG(INFO, EAL, "Trace dir: %s\n", trace->dir);
> + already_done = true;
> return 0;
> }
>
> @@ -434,6 +439,10 @@ rte_trace_save(void)
> if (trace->nb_trace_mem_list == 0)
> return rc;
>
> + rc = trace_mkdir();
> + if (rc < 0)
> + return rc;
> +
> rc = trace_meta_save(trace);
> if (rc)
> return rc;
[snip]
> 2.37.3
next prev parent reply other threads:[~2022-10-12 9:24 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-21 12:03 [PATCH 0/8] Trace subsystem fixes David Marchand
2022-09-21 12:03 ` [PATCH 1/8] trace: fix mode for new trace point David Marchand
2022-09-21 12:03 ` [PATCH 2/8] trace: fix mode change David Marchand
2022-09-21 12:03 ` [PATCH 3/8] trace: fix leak with regexp David Marchand
2022-09-22 11:00 ` [EXT] " Sunil Kumar Kori
2022-09-23 6:35 ` David Marchand
2022-09-23 7:37 ` Sunil Kumar Kori
2022-09-21 12:03 ` [PATCH 4/8] trace: fix dynamically enabling trace points David Marchand
2022-09-22 11:18 ` [EXT] " Sunil Kumar Kori
2022-09-23 6:36 ` David Marchand
2022-09-21 12:03 ` [PATCH 5/8] trace: fix race in debug dump David Marchand
2022-10-11 14:37 ` Jerin Jacob
2022-09-21 12:03 ` [PATCH 6/8] trace: fix metadata dump David Marchand
2022-09-21 12:03 ` [PATCH 7/8] trace: remove limitation on trace point name David Marchand
2022-10-11 14:49 ` Jerin Jacob
2022-10-12 7:48 ` David Marchand
2022-10-12 9:41 ` Jerin Jacob
2022-09-21 12:03 ` [PATCH 8/8] trace: remove limitation on directory David Marchand
2022-10-11 15:05 ` Jerin Jacob
2022-10-04 9:44 ` [PATCH v2 0/9] Trace subsystem fixes David Marchand
2022-10-04 9:44 ` [PATCH v2 1/9] trace: fix mode for new trace point David Marchand
2022-10-11 14:16 ` Jerin Jacob
2022-10-12 9:05 ` [EXT] " Sunil Kumar Kori
2022-10-04 9:44 ` [PATCH v2 2/9] trace: fix mode change David Marchand
2022-10-11 14:20 ` Jerin Jacob
2022-10-12 9:07 ` [EXT] " Sunil Kumar Kori
2022-10-04 9:44 ` [PATCH v2 3/9] trace: fix leak with regexp David Marchand
2022-10-11 14:21 ` Jerin Jacob
2022-10-12 9:10 ` [EXT] " Sunil Kumar Kori
2022-10-04 9:44 ` [PATCH v2 4/9] trace: rework loop on trace points David Marchand
2022-10-11 14:21 ` Jerin Jacob
2022-10-12 9:13 ` [EXT] " Sunil Kumar Kori
2022-10-04 9:44 ` [PATCH v2 5/9] trace: fix dynamically enabling " David Marchand
2022-10-12 9:23 ` Sunil Kumar Kori [this message]
2022-10-12 9:57 ` [EXT] " David Marchand
2022-10-12 10:15 ` Sunil Kumar Kori
2022-10-04 9:44 ` [PATCH v2 6/9] trace: fix race in debug dump David Marchand
2022-10-12 9:25 ` [EXT] " Sunil Kumar Kori
2022-10-04 9:44 ` [PATCH v2 7/9] trace: fix metadata dump David Marchand
2022-10-12 9:28 ` [EXT] " Sunil Kumar Kori
2022-10-04 9:44 ` [PATCH v2 8/9] trace: remove limitation on trace point name David Marchand
2022-10-04 9:44 ` [PATCH v2 9/9] trace: remove limitation on directory David Marchand
2022-10-12 9:32 ` [EXT] " Sunil Kumar Kori
2022-10-12 12:31 ` [PATCH v3 0/9] Trace subsystem fixes David Marchand
2022-10-12 12:31 ` [PATCH v3 1/9] trace: fix mode for new trace point David Marchand
2022-10-12 12:31 ` [PATCH v3 2/9] trace: fix mode change David Marchand
2022-10-12 12:31 ` [PATCH v3 3/9] trace: fix leak with regexp David Marchand
2022-10-12 12:31 ` [PATCH v3 4/9] trace: rework loop on trace points David Marchand
2022-10-12 12:31 ` [PATCH v3 5/9] trace: fix dynamically enabling " David Marchand
2022-10-13 14:53 ` [EXT] " Harman Kalra
2022-10-13 15:51 ` David Marchand
2022-10-13 17:07 ` Harman Kalra
2022-10-13 19:10 ` David Marchand
2022-10-14 4:26 ` Jerin Jacob
2022-10-14 8:19 ` David Marchand
2022-10-14 8:37 ` Jerin Jacob
2022-10-12 12:31 ` [PATCH v3 6/9] trace: fix race in debug dump David Marchand
2022-10-12 12:31 ` [PATCH v3 7/9] trace: fix metadata dump David Marchand
2022-10-12 12:31 ` [PATCH v3 8/9] trace: remove limitation on trace point name David Marchand
2022-10-12 12:31 ` [PATCH v3 9/9] trace: remove limitation on directory David Marchand
2022-10-18 13:26 ` [PATCH v4 00/11] Trace subsystem fixes and more David Marchand
2022-10-18 13:26 ` [PATCH v4 01/11] trace: fix mode for new trace point David Marchand
2022-10-18 13:26 ` [PATCH v4 02/11] trace: fix mode change David Marchand
2022-10-18 13:26 ` [PATCH v4 03/11] trace: fix leak with regexp David Marchand
2022-10-18 13:26 ` [PATCH v4 04/11] trace: rework loop on trace points David Marchand
2022-10-18 13:26 ` [PATCH v4 05/11] trace: fix dynamically enabling " David Marchand
2022-10-18 13:26 ` [PATCH v4 06/11] trace: fix race in debug dump David Marchand
2022-10-18 13:26 ` [PATCH v4 07/11] trace: fix metadata dump David Marchand
2022-10-18 13:26 ` [PATCH v4 08/11] trace: remove limitation on trace point name David Marchand
2022-10-18 13:36 ` Jerin Jacob
2022-10-18 13:26 ` [PATCH v4 09/11] trace: remove limitation on directory David Marchand
2022-10-18 13:26 ` [PATCH v4 10/11] trace: create new directory for each trace dump David Marchand
2022-10-18 13:26 ` [PATCH v4 11/11] trace: enable trace operations via telemetry David Marchand
2022-10-20 11:51 ` [PATCH v4 00/11] Trace subsystem fixes and more David Marchand
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=CO6PR18MB38601EC934967A27C65011B9B4229@CO6PR18MB3860.namprd18.prod.outlook.com \
--to=skori@marvell.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=jerinj@marvell.com \
--cc=skori@mavell.com \
--cc=stable@dpdk.org \
/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;
as well as URLs for NNTP newsgroup(s).