All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Kan Liang <kan.liang@linux.intel.com>,
	Dapeng Mi <dapeng1.mi@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Namhyung Kim <namhyung@kernel.org>,
	Ian Rogers <irogers@google.com>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
	Yongwei Ma <yongwei.ma@intel.com>,
	Dapeng Mi <dapeng1.mi@intel.com>
Subject: Re: [Patch v3 2/5] perf x86/topdown: Correct leader selection with sample_read enabled
Date: Mon, 12 Aug 2024 10:42:53 -0300	[thread overview]
Message-ID: <ZroRXXlV-ePkj-On@x1> (raw)
In-Reply-To: <20240712170339.185824-3-dapeng1.mi@linux.intel.com>

On Fri, Jul 12, 2024 at 05:03:36PM +0000, Dapeng Mi wrote:
> Addresses an issue where, in the absence of a topdown metrics event
> within a sampling group, the slots event was incorrectly bypassed as
> the sampling leader when sample_read was enabled.
> 
> perf record -e '{slots,branches}:S' -c 10000 -vv sleep 1

Kan, can you please take a look at this patch and the others in this
series?

Thanks,

- Arnaldo
 
> In this case, the slots event should be sampled as leader but the
> branches event is sampled in fact like the verbose output shows.
> 
> perf_event_attr:
>   type                             4 (cpu)
>   size                             168
>   config                           0x400 (slots)
>   sample_type                      IP|TID|TIME|READ|CPU|IDENTIFIER
>   read_format                      ID|GROUP|LOST
>   disabled                         1
>   sample_id_all                    1
>   exclude_guest                    1
> ------------------------------------------------------------
> sys_perf_event_open: pid -1  cpu 0  group_fd -1  flags 0x8 = 5
> ------------------------------------------------------------
> perf_event_attr:
>   type                             0 (PERF_TYPE_HARDWARE)
>   size                             168
>   config                           0x4 (PERF_COUNT_HW_BRANCH_INSTRUCTIONS)
>   { sample_period, sample_freq }   10000
>   sample_type                      IP|TID|TIME|READ|CPU|IDENTIFIER
>   read_format                      ID|GROUP|LOST
>   sample_id_all                    1
>   exclude_guest                    1
> 
> The sample period of slots event instead of branches event is reset to
> 0.
> 
> This fix ensures the slots event remains the leader under these
> conditions.
> 
> Signed-off-by: Dapeng Mi <dapeng1.mi@linux.intel.com>
> ---
>  tools/perf/arch/x86/util/topdown.c | 16 ++++++++++++++--
>  1 file changed, 14 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/arch/x86/util/topdown.c b/tools/perf/arch/x86/util/topdown.c
> index 49f25d67ed77..857e00cf579f 100644
> --- a/tools/perf/arch/x86/util/topdown.c
> +++ b/tools/perf/arch/x86/util/topdown.c
> @@ -1,6 +1,7 @@
>  // SPDX-License-Identifier: GPL-2.0
>  #include "api/fs/fs.h"
>  #include "util/evsel.h"
> +#include "util/evlist.h"
>  #include "util/pmu.h"
>  #include "util/pmus.h"
>  #include "util/topdown.h"
> @@ -87,11 +88,22 @@ bool arch_is_topdown_metrics(const struct evsel *evsel)
>   */
>  bool arch_topdown_sample_read(struct evsel *leader)
>  {
> +	struct evsel *evsel;
> +
>  	if (!evsel__sys_has_perf_metrics(leader))
>  		return false;
>  
> -	if (arch_is_topdown_slots(leader))
> -		return true;
> +	if (!arch_is_topdown_slots(leader))
> +		return false;
> +
> +	/*
> +	 * If slots event as leader event but no topdown metric events
> +	 * in group, slots event should still sample as leader.
> +	 */
> +	evlist__for_each_entry(leader->evlist, evsel) {
> +		if (evsel != leader && arch_is_topdown_metrics(evsel))
> +			return true;
> +	}
>  
>  	return false;
>  }
> -- 
> 2.40.1

  reply	other threads:[~2024-08-12 13:42 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-12 17:03 [Patch v3 0/5] Bug fixes on topdown events reordering Dapeng Mi
2024-07-12 17:03 ` [Patch v3 1/5] perf x86/topdown: Complete topdown slots/metrics events check Dapeng Mi
2024-08-12 13:41   ` Arnaldo Carvalho de Melo
2024-08-13  6:54     ` Mi, Dapeng
2024-08-15  6:42     ` Mi, Dapeng
2024-07-12 17:03 ` [Patch v3 2/5] perf x86/topdown: Correct leader selection with sample_read enabled Dapeng Mi
2024-08-12 13:42   ` Arnaldo Carvalho de Melo [this message]
2024-08-12 14:37     ` Liang, Kan
2024-08-12 15:18   ` Liang, Kan
2024-08-13  7:15     ` Mi, Dapeng
2024-07-12 17:03 ` [Patch v3 3/5] perf x86/topdown: Don't move topdown metric events in group Dapeng Mi
2024-08-12 15:37   ` Liang, Kan
2024-08-13  7:30     ` Mi, Dapeng
2024-07-12 17:03 ` [Patch v3 4/5] perf tests: Add leader sampling test in record tests Dapeng Mi
2024-07-12 17:03 ` [Patch v3 5/5] perf tests: Add topdown events counting and sampling tests Dapeng Mi
2024-08-12  5:43 ` [Patch v3 0/5] Bug fixes on topdown events reordering Mi, Dapeng

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=ZroRXXlV-ePkj-On@x1 \
    --to=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=dapeng1.mi@intel.com \
    --cc=dapeng1.mi@linux.intel.com \
    --cc=irogers@google.com \
    --cc=kan.liang@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=yongwei.ma@intel.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.