All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Adrian Hunter <adrian.hunter@intel.com>
Cc: Ingo Molnar <mingo@redhat.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Thomas Richter <tmricht@linux.ibm.com>,
	Hendrik Brueckner <brueckner@linux.ibm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Mike Leach <mike.leach@linaro.org>,
	James Clark <james.clark@arm.com>,
	coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org,
	Yicong Yang <yangyicong@hisilicon.com>,
	Jonathan Cameron <jonathan.cameron@huawei.com>,
	Will Deacon <will@kernel.org>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
	Ian Rogers <irogers@google.com>, Andi Kleen <ak@linux.intel.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org
Subject: Re: [PATCH V8 01/12] perf/core: Add aux_pause, aux_resume, aux_start_paused
Date: Thu, 11 Jul 2024 13:51:23 +0200	[thread overview]
Message-ID: <20240711115123.GK4587@noisy.programming.kicks-ass.net> (raw)
In-Reply-To: <68796741-f49f-447f-b707-fe4f8391fc17@intel.com>

On Thu, Jul 11, 2024 at 01:42:33PM +0300, Adrian Hunter wrote:
> On 1/07/24 13:26, Peter Zijlstra wrote:
> > On Fri, Jun 28, 2024 at 09:51:00AM +0300, Adrian Hunter wrote:
> > 
> >> Add aux_paused to struct perf_event for AUX area events to keep track of
> >> the "paused" state. aux_paused is initialized to aux_start_paused.
> > 	
> >> @@ -798,6 +810,9 @@ struct perf_event {
> >>  	/* for aux_output events */
> >>  	struct perf_event		*aux_event;
> >>  
> >> +	/* for AUX area events */
> >> +	unsigned int			aux_paused;
> >> +
> >>  	void (*destroy)(struct perf_event *);
> >>  	struct rcu_head			rcu_head;
> >>  
> > 
> > Should this not be part of struct hw_perf_event for whatever hw event
> > implements this AUX stuff?
> > 
> > In fact, I would expect PERF_HES_PAUSED or something to go in
> > perf_event::hw::state.
> 
> Sorry for the slow reply due to vacation.
> 
> There doesn't seem to be anything preventing pause/resume from
> "racing" (PMI vs task context) with changes in the aux event state,
> so aux_paused must be separate from perf_event::hw::state.

So normally, context switching perf would be under pmu_disable(), which
should ensure no PMI happens while we're reprogramming the PMU.

That said, I think for the aux case we have perf_event_stop() that can
race vs PMI, so yeah, bummer.

Sticking it in hw_perf_event would be good though. Also perhaps add a
comment about exactly why this cannot be in ::state.

  reply	other threads:[~2024-07-11 11:51 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-28  6:50 [PATCH V8 00/12] perf/core: Add ability for an event to "pause" or "resume" AUX area tracing Adrian Hunter
2024-06-28  6:51 ` [PATCH V8 01/12] perf/core: Add aux_pause, aux_resume, aux_start_paused Adrian Hunter
2024-07-01 10:26   ` Peter Zijlstra
2024-07-11 10:42     ` Adrian Hunter
2024-07-11 11:51       ` Peter Zijlstra [this message]
2024-07-01 10:52   ` Peter Zijlstra
2024-07-11 11:14     ` Adrian Hunter
2024-06-28  6:51 ` [PATCH V8 02/12] perf/x86/intel/pt: Add support for pause / resume Adrian Hunter
2024-07-01 10:46   ` Peter Zijlstra
2024-07-11 13:35     ` Adrian Hunter
2024-06-28  6:51 ` [PATCH V8 03/12] perf/x86/intel: Do not enable large PEBS for events with aux actions or aux sampling Adrian Hunter
2024-06-28  6:51 ` [PATCH V8 04/12] perf tools: Enable evsel__is_aux_event() to work for ARM/ARM64 Adrian Hunter
2024-06-28  6:51 ` [PATCH V8 05/12] perf tools: Enable evsel__is_aux_event() to work for S390_CPUMSF Adrian Hunter
2024-06-28  6:51 ` [PATCH V8 06/12] perf tools: Add aux_start_paused, aux_pause and aux_resume Adrian Hunter
2024-06-28  6:51 ` [PATCH V8 07/12] perf tools: Add aux-action config term Adrian Hunter
2024-06-28  6:51 ` [PATCH V8 08/12] perf tools: Parse aux-action Adrian Hunter
2024-06-28  6:51 ` [PATCH V8 09/12] perf tools: Add missing_features for aux_start_paused, aux_pause, aux_resume Adrian Hunter
2024-06-28  6:51 ` [PATCH V8 10/12] perf intel-pt: Improve man page format Adrian Hunter
2024-06-28  6:51 ` [PATCH V8 11/12] perf intel-pt: Add documentation for pause / resume Adrian Hunter
2024-06-28  6:51 ` [PATCH V8 12/12] perf intel-pt: Add a test " Adrian Hunter

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=20240711115123.GK4587@noisy.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=brueckner@linux.ibm.com \
    --cc=coresight@lists.linaro.org \
    --cc=hca@linux.ibm.com \
    --cc=irogers@google.com \
    --cc=james.clark@arm.com \
    --cc=jolsa@kernel.org \
    --cc=jonathan.cameron@huawei.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mike.leach@linaro.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=suzuki.poulose@arm.com \
    --cc=tmricht@linux.ibm.com \
    --cc=will@kernel.org \
    --cc=yangyicong@hisilicon.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.