linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Adrian Hunter <adrian.hunter@intel.com>
To: Andi Kleen <ak@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	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>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org
Subject: Re: [PATCH V5 01/12] perf/core: Add aux_pause, aux_resume, aux_start_paused
Date: Mon, 12 Feb 2024 08:43:11 +0200	[thread overview]
Message-ID: <05ac66fc-ddda-46ff-b08d-c15943c16bc1@intel.com> (raw)
In-Reply-To: <ZcaUw4xQT0VcC7IO@tassilo>

On 9/02/24 23:10, Andi Kleen wrote:
>> The writes to rb->aux_in_pause_resume must be done
>> only once.  It might be possible to get away without
>> WRITE_ONCE(), but really the compiler should be informed
>> not to make assumptions.
> 
> What stops the NMI from firing here?

That would be fine.

> 
>>>> +  if (READ_ONCE(rb->aux_in_pause_resume))
>>>> +	/* Guard against NMI, NMI loses here */
>>>> +          goto out_restore;
> <----------------------- NMI

That would be fine.

>>>> +  WRITE_ONCE(rb->aux_in_pause_resume, 1);

From here on, the NMI will see rb->aux_in_pause_resume == 1
and do nothing, up to the point when rb->aux_in_pause_resume == 0
again.

This code is about guarding against NMI.  Interrupts are
disabled, and the rb and event only operate on 1 cpu at a time.

> 
> 
> Even if it isn't racy it needs a clear comment.

It has a comment, but it could be more explanatory.  The code
paradigm is also used in perf_pmu_snapshot_aux().


  reply	other threads:[~2024-02-12  6:43 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-08 11:31 [PATCH V5 00/12] perf/core: Add ability for an event to "pause" or "resume" AUX area tracing Adrian Hunter
2024-02-08 11:31 ` [PATCH V5 01/12] perf/core: Add aux_pause, aux_resume, aux_start_paused Adrian Hunter
2024-02-09  0:13   ` Andi Kleen
2024-02-09  8:14     ` Adrian Hunter
2024-02-09  9:49       ` Andi Kleen
2024-02-09 21:10       ` Andi Kleen
2024-02-12  6:43         ` Adrian Hunter [this message]
2024-02-16  9:31           ` [PATCH V6] " Adrian Hunter
2024-02-08 11:31 ` [PATCH V5 02/12] perf/x86/intel/pt: Add support for pause / resume Adrian Hunter
2024-02-08 11:31 ` [PATCH V5 03/12] perf/x86/intel: Do not enable large PEBS for events with aux actions or aux sampling Adrian Hunter
2024-02-08 11:31 ` [PATCH V5 04/12] perf tools: Enable evsel__is_aux_event() to work for ARM/ARM64 Adrian Hunter
2024-02-08 11:31 ` [PATCH V5 05/12] perf tools: Enable evsel__is_aux_event() to work for S390_CPUMSF Adrian Hunter
2024-02-08 11:31 ` [PATCH V5 06/12] perf tools: Add aux_start_paused, aux_pause and aux_resume Adrian Hunter
2024-02-08 11:31 ` [PATCH V5 07/12] perf tools: Add aux-action config term Adrian Hunter
2024-02-08 11:31 ` [PATCH V5 08/12] perf tools: Parse aux-action Adrian Hunter
2024-02-08 11:31 ` [PATCH V5 09/12] perf tools: Add missing_features for aux_start_paused, aux_pause, aux_resume Adrian Hunter
2024-02-08 11:31 ` [PATCH V5 10/12] perf intel-pt: Improve man page format Adrian Hunter
2024-02-08 11:31 ` [PATCH V5 11/12] perf intel-pt: Add documentation for pause / resume Adrian Hunter
2024-02-08 11:31 ` [PATCH V5 12/12] perf intel-pt: Add a test " Adrian Hunter
2024-02-09  0:16   ` Andi Kleen
2024-04-11 12:02 ` [PATCH V5 00/12] perf/core: Add ability for an event to "pause" or "resume" AUX area tracing Adrian Hunter
2024-04-24 10:39   ` Adrian Hunter
2024-05-15 12:34     ` 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=05ac66fc-ddda-46ff-b08d-c15943c16bc1@intel.com \
    --to=adrian.hunter@intel.com \
    --cc=acme@kernel.org \
    --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=peterz@infradead.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 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).