From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>, Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
LKML <linux-kernel@vger.kernel.org>,
Ian Rogers <irogers@google.com>,
linux-perf-users@vger.kernel.org, Will Deacon <will@kernel.org>,
Waiman Long <longman@redhat.com>,
Boqun Feng <boqun.feng@gmail.com>,
Davidlohr Bueso <dave@stgolabs.net>
Subject: Re: [PATCH 1/5] perf lock: Add flags field in the lock_stat
Date: Mon, 25 Jul 2022 17:53:46 -0300 [thread overview]
Message-ID: <Yt8C2kuSAJM5LJZf@kernel.org> (raw)
In-Reply-To: <20220725183124.368304-2-namhyung@kernel.org>
Em Mon, Jul 25, 2022 at 11:31:20AM -0700, Namhyung Kim escreveu:
> For lock contention tracepoint analysis, it needs to keep the flags.
> As nr_readlock and nr_trylock fields are not used for it, let's make
> it a union.
>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> ---
> tools/perf/builtin-lock.c | 22 +++++++++++++---------
> 1 file changed, 13 insertions(+), 9 deletions(-)
>
> diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c
> index 0aae88fdf93a..1de459198b99 100644
> --- a/tools/perf/builtin-lock.c
> +++ b/tools/perf/builtin-lock.c
> @@ -59,7 +59,10 @@ struct lock_stat {
> unsigned int nr_contended;
> unsigned int nr_release;
>
> - unsigned int nr_readlock;
> + union {
> + unsigned int nr_readlock;
> + unsigned int flags;
> + };
> unsigned int nr_trylock;
>
> /* these times are in nano sec. */
> @@ -516,7 +519,7 @@ static struct lock_stat *lock_stat_find(u64 addr)
> return NULL;
> }
>
> -static struct lock_stat *lock_stat_findnew(u64 addr, const char *name)
> +static struct lock_stat *lock_stat_findnew(u64 addr, const char *name, int flags)
> {
> struct hlist_head *entry = lockhashentry(addr);
> struct lock_stat *ret, *new;
> @@ -531,13 +534,13 @@ static struct lock_stat *lock_stat_findnew(u64 addr, const char *name)
> goto alloc_failed;
>
> new->addr = addr;
> - new->name = zalloc(sizeof(char) * strlen(name) + 1);
> + new->name = strdup(name);
> if (!new->name) {
> free(new);
> goto alloc_failed;
> }
>
> - strcpy(new->name, name);
I'm applying to speed things up, but please separate such unrelated bits
in another patch next time.
- Arnaldo
> + new->flags = flags;
> new->wait_time_min = ULLONG_MAX;
>
> hlist_add_head(&new->hash_entry, entry);
> @@ -624,7 +627,7 @@ static int report_lock_acquire_event(struct evsel *evsel,
> if (show_thread_stats)
> addr = sample->tid;
>
> - ls = lock_stat_findnew(addr, name);
> + ls = lock_stat_findnew(addr, name, 0);
> if (!ls)
> return -ENOMEM;
>
> @@ -696,7 +699,7 @@ static int report_lock_acquired_event(struct evsel *evsel,
> if (show_thread_stats)
> addr = sample->tid;
>
> - ls = lock_stat_findnew(addr, name);
> + ls = lock_stat_findnew(addr, name, 0);
> if (!ls)
> return -ENOMEM;
>
> @@ -758,7 +761,7 @@ static int report_lock_contended_event(struct evsel *evsel,
> if (show_thread_stats)
> addr = sample->tid;
>
> - ls = lock_stat_findnew(addr, name);
> + ls = lock_stat_findnew(addr, name, 0);
> if (!ls)
> return -ENOMEM;
>
> @@ -813,7 +816,7 @@ static int report_lock_release_event(struct evsel *evsel,
> if (show_thread_stats)
> addr = sample->tid;
>
> - ls = lock_stat_findnew(addr, name);
> + ls = lock_stat_findnew(addr, name, 0);
> if (!ls)
> return -ENOMEM;
>
> @@ -985,11 +988,12 @@ static int report_lock_contention_begin_event(struct evsel *evsel,
> if (!ls) {
> char buf[128];
> const char *caller = buf;
> + unsigned int flags = evsel__intval(evsel, sample, "flags");
>
> if (lock_contention_caller(evsel, sample, buf, sizeof(buf)) < 0)
> caller = "Unknown";
>
> - ls = lock_stat_findnew(addr, caller);
> + ls = lock_stat_findnew(addr, caller, flags);
> if (!ls)
> return -ENOMEM;
> }
> --
> 2.37.1.359.gd136c6c3e2-goog
--
- Arnaldo
next prev parent reply other threads:[~2022-07-25 20:53 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-25 18:31 [PATCHSET 0/5] perf lock: Add contention subcommand (v2) Namhyung Kim
2022-07-25 18:31 ` [PATCH 1/5] perf lock: Add flags field in the lock_stat Namhyung Kim
2022-07-25 20:53 ` Arnaldo Carvalho de Melo [this message]
2022-07-25 18:31 ` [PATCH 2/5] perf lock: Add lock aggregation enum Namhyung Kim
2022-07-25 18:31 ` [PATCH 3/5] perf lock: Add 'contention' subcommand Namhyung Kim
2022-07-25 18:31 ` [PATCH 4/5] perf lock: Add -k and -F options to " Namhyung Kim
2022-07-25 18:31 ` [PATCH 5/5] perf lock: Support -t option for " Namhyung Kim
2022-07-25 21:01 ` [PATCHSET 0/5] perf lock: Add contention subcommand (v2) Arnaldo Carvalho de Melo
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=Yt8C2kuSAJM5LJZf@kernel.org \
--to=acme@kernel.org \
--cc=boqun.feng@gmail.com \
--cc=dave@stgolabs.net \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=longman@redhat.com \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=will@kernel.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 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.