From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Leo Yan <leo.yan@linaro.org>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Mike Leach <mike.leach@linaro.org>,
James Clark <James.Clark@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
John Garry <john.garry@huawei.com>, Will Deacon <will@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Mark Rutland <mark.rutland@arm.com>, Jiri Olsa <jolsa@redhat.com>,
Namhyung Kim <namhyung@kernel.org>,
coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
Daniel Kiss <daniel.kiss@arm.com>,
Denis Nikitin <denik@google.com>
Subject: Re: [PATCH v2 2/3] perf cs-etm: Remove callback cs_etm_find_snapshot()
Date: Thu, 1 Jul 2021 13:25:14 -0300 [thread overview]
Message-ID: <YN3sas8tWPfWjFqE@kernel.org> (raw)
In-Reply-To: <20210701093537.90759-3-leo.yan@linaro.org>
Em Thu, Jul 01, 2021 at 05:35:36PM +0800, Leo Yan escreveu:
> The callback cs_etm_find_snapshot() is invoked for snapshot mode, its
> main purpose is to find the correct AUX trace data and returns "head"
> and "old" (we can call "old" as "old head") to the caller, the caller
> __auxtrace_mmap__read() uses these two pointers to decide the AUX trace
> data size.
>
> This patch removes cs_etm_find_snapshot() with below reasons:
>
> - The first thing in cs_etm_find_snapshot() is to check if the head has
> wrapped around, if it is not, directly bails out. The checking is
> pointless, this is because the "head" and "old" pointers both are
> monotonical increasing so they never wrap around.
>
> - cs_etm_find_snapshot() adjusts the "head" and "old" pointers and
> assumes the AUX ring buffer is fully filled with the hardware trace
> data, so it always subtracts the difference "mm->len" from "head" to
> get "old". Let's imagine the snapshot is taken in very short
> interval, the tracers only fill a small chunk of the trace data into
> the AUX ring buffer, in this case, it's wrongly to copy the whole the
> AUX ring buffer to perf file.
>
> - As the "head" and "old" pointers are monotonically increased, the
> function __auxtrace_mmap__read() handles these two pointers properly.
> It calculates the reminders for these two pointers, and the size is
> clamped to be never more than "snapshot_size". We can simply reply on
> the function __auxtrace_mmap__read() to calculate the correct result
> for data copying, it's not necessary to add Arm CoreSight specific
> callback.
Thanks, applied.
- Arnaldo
WARNING: multiple messages have this Message-ID (diff)
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Leo Yan <leo.yan@linaro.org>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Mike Leach <mike.leach@linaro.org>,
James Clark <James.Clark@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
John Garry <john.garry@huawei.com>, Will Deacon <will@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Mark Rutland <mark.rutland@arm.com>, Jiri Olsa <jolsa@redhat.com>,
Namhyung Kim <namhyung@kernel.org>,
coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
Daniel Kiss <daniel.kiss@arm.com>,
Denis Nikitin <denik@google.com>
Subject: Re: [PATCH v2 2/3] perf cs-etm: Remove callback cs_etm_find_snapshot()
Date: Thu, 1 Jul 2021 13:25:14 -0300 [thread overview]
Message-ID: <YN3sas8tWPfWjFqE@kernel.org> (raw)
In-Reply-To: <20210701093537.90759-3-leo.yan@linaro.org>
Em Thu, Jul 01, 2021 at 05:35:36PM +0800, Leo Yan escreveu:
> The callback cs_etm_find_snapshot() is invoked for snapshot mode, its
> main purpose is to find the correct AUX trace data and returns "head"
> and "old" (we can call "old" as "old head") to the caller, the caller
> __auxtrace_mmap__read() uses these two pointers to decide the AUX trace
> data size.
>
> This patch removes cs_etm_find_snapshot() with below reasons:
>
> - The first thing in cs_etm_find_snapshot() is to check if the head has
> wrapped around, if it is not, directly bails out. The checking is
> pointless, this is because the "head" and "old" pointers both are
> monotonical increasing so they never wrap around.
>
> - cs_etm_find_snapshot() adjusts the "head" and "old" pointers and
> assumes the AUX ring buffer is fully filled with the hardware trace
> data, so it always subtracts the difference "mm->len" from "head" to
> get "old". Let's imagine the snapshot is taken in very short
> interval, the tracers only fill a small chunk of the trace data into
> the AUX ring buffer, in this case, it's wrongly to copy the whole the
> AUX ring buffer to perf file.
>
> - As the "head" and "old" pointers are monotonically increased, the
> function __auxtrace_mmap__read() handles these two pointers properly.
> It calculates the reminders for these two pointers, and the size is
> clamped to be never more than "snapshot_size". We can simply reply on
> the function __auxtrace_mmap__read() to calculate the correct result
> for data copying, it's not necessary to add Arm CoreSight specific
> callback.
Thanks, applied.
- Arnaldo
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-07-01 16:25 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-01 9:35 [PATCH v2 0/3] coresight: Fix for snapshot mode Leo Yan
2021-07-01 9:35 ` Leo Yan
2021-07-01 9:35 ` [PATCH v2 1/3] coresight: tmc-etr: Use perf_output_handle::head for AUX ring buffer Leo Yan
2021-07-01 9:35 ` Leo Yan
2021-07-01 9:35 ` [PATCH v2 2/3] perf cs-etm: Remove callback cs_etm_find_snapshot() Leo Yan
2021-07-01 9:35 ` Leo Yan
2021-07-01 16:25 ` Arnaldo Carvalho de Melo [this message]
2021-07-01 16:25 ` Arnaldo Carvalho de Melo
2021-07-02 1:10 ` Leo Yan
2021-07-02 1:10 ` Leo Yan
2021-07-02 18:00 ` Mathieu Poirier
2021-07-02 18:00 ` Mathieu Poirier
2021-07-01 9:35 ` [PATCH v2 3/3] coresight: Update comments for removing cs_etm_find_snapshot() Leo Yan
2021-07-01 9:35 ` Leo Yan
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=YN3sas8tWPfWjFqE@kernel.org \
--to=acme@kernel.org \
--cc=James.Clark@arm.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=coresight@lists.linaro.org \
--cc=daniel.kiss@arm.com \
--cc=denik@google.com \
--cc=john.garry@huawei.com \
--cc=jolsa@redhat.com \
--cc=leo.yan@linaro.org \
--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=mathieu.poirier@linaro.org \
--cc=mike.leach@linaro.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=suzuki.poulose@arm.com \
--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.