From: a.p.zijlstra@chello.nl (Peter Zijlstra)
To: linux-arm-kernel@lists.infradead.org
Subject: oprofile and ARM A9 hardware counter
Date: Wed, 15 Feb 2012 17:38:20 +0100 [thread overview]
Message-ID: <1329323900.2293.150.camel@twins> (raw)
In-Reply-To: <CACVXFVMx9Zx3ZQr6Q-17x5NVL8iuBJjOjtw39FJiWX=fGkZNZA@mail.gmail.com>
On Wed, 2012-02-08 at 10:24 +0800, Ming Lei wrote:
>
> On OMAP4, HZ is 128, and perf_rotate_context may set a new sample period(~8ms),
> which is much longer than 1ms in 1000HZ freq mode, so less sample events are
> observed. X86 isn't affected since its HZ is 1000.
>
> With patch[1], about 10000 sample events can be generated after running
> 'perf record -e cycles ./noploop 10' and 'perf report -D | tail -20'
> on panda board.
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index 32b48c8..db4faf2 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -2300,14 +2300,12 @@ do { \
> return div64_u64(dividend, divisor);
> }
>
> -static void perf_adjust_period(struct perf_event *event, u64 nsec, u64 count)
> +static void perf_adjust_period(struct perf_event *event, u64 period, u64 count)
> {
> struct hw_perf_event *hwc = &event->hw;
> - s64 period, sample_period;
> + s64 sample_period;
> s64 delta;
>
> - period = perf_calculate_period(event, nsec, count);
> -
> delta = (s64)(period - hwc->sample_period);
> delta = (delta + 7) / 8; /* low pass filter */
>
> @@ -2363,8 +2361,13 @@ static void perf_ctx_adjust_freq(struct
> perf_event_context *ctx, u64 period)
> delta = now - hwc->freq_count_stamp;
> hwc->freq_count_stamp = now;
>
> - if (delta > 0)
> + if (delta > 0) {
> + period = perf_calculate_period(event, period, delta);
> +
> + if (period > 4*hwc->sample_period)
> + period = hwc->sample_period;
> perf_adjust_period(event, period, delta);
> + }
> }
> }
>
> @@ -4533,8 +4536,10 @@ static int __perf_event_overflow(struct
> perf_event *event,
>
> hwc->freq_time_stamp = now;
>
> - if (delta > 0 && delta < 2*TICK_NSEC)
> + if (delta > 0 && delta < 2*TICK_NSEC) {
> + delta = perf_calculate_period(event, delta, hwc->last_period);
> perf_adjust_period(event, delta, hwc->last_period);
> + }
> }
>
> /*
So what this patch seems to do is put that filter on period in
perf_ctx_adjust_freq(). Not making sense.. nor can I see a HZ
dependency, perf_ctx_adjust_freq() uses TICK_NSEC as time base.
WARNING: multiple messages have this Message-ID (diff)
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: Ming Lei <ming.lei@canonical.com>
Cc: eranian@gmail.com, "Shilimkar,
Santosh" <santosh.shilimkar@ti.com>,
David Long <dave.long@linaro.org>,
b-cousson@ti.com, mans@mansr.com, will.deacon@arm.com,
linux-arm <linux-arm-kernel@lists.infradead.org>,
Ingo Molnar <mingo@elte.hu>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: oprofile and ARM A9 hardware counter
Date: Wed, 15 Feb 2012 17:38:20 +0100 [thread overview]
Message-ID: <1329323900.2293.150.camel@twins> (raw)
In-Reply-To: <CACVXFVMx9Zx3ZQr6Q-17x5NVL8iuBJjOjtw39FJiWX=fGkZNZA@mail.gmail.com>
On Wed, 2012-02-08 at 10:24 +0800, Ming Lei wrote:
>
> On OMAP4, HZ is 128, and perf_rotate_context may set a new sample period(~8ms),
> which is much longer than 1ms in 1000HZ freq mode, so less sample events are
> observed. X86 isn't affected since its HZ is 1000.
>
> With patch[1], about 10000 sample events can be generated after running
> 'perf record -e cycles ./noploop 10' and 'perf report -D | tail -20'
> on panda board.
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index 32b48c8..db4faf2 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -2300,14 +2300,12 @@ do { \
> return div64_u64(dividend, divisor);
> }
>
> -static void perf_adjust_period(struct perf_event *event, u64 nsec, u64 count)
> +static void perf_adjust_period(struct perf_event *event, u64 period, u64 count)
> {
> struct hw_perf_event *hwc = &event->hw;
> - s64 period, sample_period;
> + s64 sample_period;
> s64 delta;
>
> - period = perf_calculate_period(event, nsec, count);
> -
> delta = (s64)(period - hwc->sample_period);
> delta = (delta + 7) / 8; /* low pass filter */
>
> @@ -2363,8 +2361,13 @@ static void perf_ctx_adjust_freq(struct
> perf_event_context *ctx, u64 period)
> delta = now - hwc->freq_count_stamp;
> hwc->freq_count_stamp = now;
>
> - if (delta > 0)
> + if (delta > 0) {
> + period = perf_calculate_period(event, period, delta);
> +
> + if (period > 4*hwc->sample_period)
> + period = hwc->sample_period;
> perf_adjust_period(event, period, delta);
> + }
> }
> }
>
> @@ -4533,8 +4536,10 @@ static int __perf_event_overflow(struct
> perf_event *event,
>
> hwc->freq_time_stamp = now;
>
> - if (delta > 0 && delta < 2*TICK_NSEC)
> + if (delta > 0 && delta < 2*TICK_NSEC) {
> + delta = perf_calculate_period(event, delta, hwc->last_period);
> perf_adjust_period(event, delta, hwc->last_period);
> + }
> }
>
> /*
So what this patch seems to do is put that filter on period in
perf_ctx_adjust_freq(). Not making sense.. nor can I see a HZ
dependency, perf_ctx_adjust_freq() uses TICK_NSEC as time base.
next prev parent reply other threads:[~2012-02-15 16:38 UTC|newest]
Thread overview: 257+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1328578047.1724.17.camel@dave-Dell-System-XPS-L502X>
[not found] ` <CAMQu2gwfo5JXAqQaLUNs7C7J3TUhEO2zOcyD0Rk-D_O61Yrfag@mail.gmail.com>
[not found] ` <CAMsRxfLNBbQO5XF+EHJqNsnW+s=ay3mjSV5dh=sxdwzktUu03g@mail.gmail.com>
[not found] ` <CAMQu2gzfNAwtf1c6jrTZpfGMSqBgBrQKmFTeCFzbvMh9ESBDUg@mail.gmail.com>
[not found] ` <CAMsRxfKR1ODH56BtcUT5Dv6qOVEYGVheEcW9ugXsZmLKok==bg@mail.gmail.com>
2012-02-07 10:53 ` oprofile and ARM A9 hardware counter Shilimkar, Santosh
2012-02-07 11:09 ` Shilimkar, Santosh
2012-02-07 11:25 ` stephane eranian
2012-02-07 11:39 ` Shilimkar, Santosh
2012-02-07 11:59 ` stephane eranian
2012-02-07 15:30 ` Will Deacon
2012-02-08 2:24 ` Ming Lei
2012-02-08 2:24 ` Ming Lei
2012-02-15 16:38 ` Peter Zijlstra [this message]
2012-02-15 16:38 ` Peter Zijlstra
2012-02-16 10:25 ` Ming Lei
2012-02-16 10:25 ` Ming Lei
2012-02-16 15:00 ` Will Deacon
2012-02-16 15:00 ` Will Deacon
2012-02-16 16:12 ` Ming Lei
2012-02-16 16:12 ` Ming Lei
2012-02-16 16:19 ` Peter Zijlstra
2012-02-16 16:19 ` Peter Zijlstra
2012-02-16 16:37 ` Ming Lei
2012-02-16 16:37 ` Ming Lei
2012-02-16 18:08 ` Will Deacon
2012-02-16 18:08 ` Will Deacon
2012-02-17 5:24 ` Ming Lei
2012-02-17 5:24 ` Ming Lei
2012-02-17 10:26 ` Will Deacon
2012-02-17 10:26 ` Will Deacon
2012-02-20 3:19 ` Ming Lei
2012-02-20 3:19 ` Ming Lei
2012-02-20 9:44 ` Will Deacon
2012-02-20 9:44 ` Will Deacon
2012-02-13 13:15 ` Will Deacon
[not found] ` <1329508513.1858.15.camel@dave-Dell-System-XPS-L502X>
2012-02-18 4:31 ` Shilimkar, Santosh
2012-04-03 9:44 ` Will Deacon
2012-04-03 9:47 ` Shilimkar, Santosh
[not found] ` <CACVXFVN0E_deS2d50mfufO5QZSwh=34BppCL++oxtc3nfN_ugA@mail.gmail.com>
[not found] ` <1328664644.1678.15.camel@dave-Dell-System-XPS-L502X>
2012-02-09 20:05 ` David A. Long
[not found] <CAAO=S0+L2Q1YZC-pfm2Lz8jPooTeHYOMaZbtRgHYFoL_m7rvhA@mail.gmail.com>
[not found] ` <4F0B182D.7060507@us.ibm.com>
2012-01-09 22:49 ` Will Deacon
2012-01-09 22:49 ` Will Deacon
2012-01-09 23:30 ` Ming Lei
2012-01-09 23:30 ` Ming Lei
2012-01-10 0:46 ` stephane eranian
2012-01-10 0:46 ` stephane eranian
2012-01-18 4:18 ` Ming Lei
2012-01-18 4:18 ` Ming Lei
2012-01-18 9:33 ` Ming Lei
2012-01-18 9:33 ` Ming Lei
2012-01-18 11:39 ` Shilimkar, Santosh
2012-01-18 11:39 ` Shilimkar, Santosh
2012-01-18 12:24 ` Ming Lei
2012-01-18 12:24 ` Ming Lei
2012-01-18 12:33 ` Shilimkar, Santosh
2012-01-18 12:33 ` Shilimkar, Santosh
2012-04-03 9:25 ` Will Deacon
2012-04-03 9:25 ` Will Deacon
2012-04-03 9:42 ` Shilimkar, Santosh
2012-04-03 9:42 ` Shilimkar, Santosh
2012-04-03 9:47 ` Will Deacon
2012-04-03 9:47 ` Will Deacon
2012-04-03 10:01 ` Shilimkar, Santosh
2012-04-03 10:01 ` Shilimkar, Santosh
2012-04-03 12:34 ` Will Deacon
2012-04-03 12:34 ` Will Deacon
2012-04-03 12:41 ` Shilimkar, Santosh
2012-04-03 12:41 ` Shilimkar, Santosh
2012-04-03 14:27 ` Kevin Hilman
2012-04-03 14:27 ` Kevin Hilman
2012-04-03 16:07 ` Will Deacon
2012-04-03 16:07 ` Will Deacon
2012-04-03 23:14 ` Kevin Hilman
2012-04-03 23:14 ` Kevin Hilman
2012-04-03 23:29 ` Paul Walmsley
2012-04-03 23:29 ` Paul Walmsley
2012-04-04 3:42 ` Ming Lei
2012-04-04 3:42 ` Ming Lei
2012-04-04 11:15 ` Will Deacon
2012-04-04 11:15 ` Will Deacon
2012-04-26 18:07 ` Will Deacon
2012-04-26 18:07 ` Will Deacon
2012-04-30 22:25 ` Kevin Hilman
2012-04-30 22:25 ` Kevin Hilman
2012-05-07 17:27 ` Ming Lei
2012-05-07 17:27 ` Ming Lei
2012-05-04 22:17 ` Jon Hunter
2012-05-04 22:17 ` Jon Hunter
2012-05-07 17:15 ` Kevin Hilman
2012-05-07 17:15 ` Kevin Hilman
2012-05-07 19:53 ` Jon Hunter
2012-05-07 19:53 ` Jon Hunter
2012-05-07 23:28 ` Kevin Hilman
2012-05-07 23:28 ` Kevin Hilman
2012-05-08 11:01 ` Cousson, Benoit
2012-05-08 11:01 ` Cousson, Benoit
2012-05-08 11:23 ` Jean Pihet
2012-05-08 11:23 ` Jean Pihet
2012-05-08 12:37 ` Cousson, Benoit
2012-05-08 12:37 ` Cousson, Benoit
2012-05-08 13:18 ` Jean Pihet
2012-05-08 13:18 ` Jean Pihet
2012-05-08 14:00 ` Kevin Hilman
2012-05-08 14:00 ` Kevin Hilman
2012-05-08 14:03 ` Cousson, Benoit
2012-05-08 14:03 ` Cousson, Benoit
2012-05-08 16:18 ` Kevin Hilman
2012-05-08 16:18 ` Kevin Hilman
2012-05-08 19:51 ` Jon Hunter
2012-05-08 19:51 ` Jon Hunter
2012-05-08 21:28 ` Kevin Hilman
2012-05-08 21:28 ` Kevin Hilman
2012-05-08 22:20 ` Jon Hunter
2012-05-08 22:20 ` Jon Hunter
2012-05-08 22:12 ` Ming Lei
2012-05-08 22:12 ` Ming Lei
2012-05-08 17:31 ` Jon Hunter
2012-05-08 17:31 ` Jon Hunter
2012-05-08 21:22 ` Kevin Hilman
2012-05-08 21:22 ` Kevin Hilman
2012-05-08 23:59 ` Jon Hunter
2012-05-08 23:59 ` Jon Hunter
2012-05-09 10:58 ` Cousson, Benoit
2012-05-09 10:58 ` Cousson, Benoit
2012-05-09 18:04 ` Jon Hunter
2012-05-09 18:04 ` Jon Hunter
2012-05-09 19:28 ` Jon Hunter
2012-05-09 19:28 ` Jon Hunter
2012-05-09 21:45 ` Jon Hunter
2012-05-09 21:45 ` Jon Hunter
2012-05-10 8:44 ` Will Deacon
2012-05-10 8:44 ` Will Deacon
2012-05-10 9:12 ` stephane eranian
2012-05-10 9:12 ` stephane eranian
2012-05-10 18:55 ` Jon Hunter
2012-05-10 18:55 ` Jon Hunter
2012-05-11 12:25 ` Will Deacon
2012-05-11 12:25 ` Will Deacon
2012-05-11 13:47 ` Jon Hunter
2012-05-11 13:47 ` Jon Hunter
2012-05-11 13:49 ` Will Deacon
2012-05-11 13:49 ` Will Deacon
2012-05-11 14:52 ` Jon Hunter
2012-05-11 14:52 ` Jon Hunter
2012-05-11 15:02 ` Will Deacon
2012-05-11 15:02 ` Will Deacon
2012-05-11 16:31 ` Jon Hunter
2012-05-11 16:31 ` Jon Hunter
2012-05-11 16:38 ` Will Deacon
2012-05-11 16:38 ` Will Deacon
2012-05-11 23:51 ` Jon Hunter
2012-05-11 23:51 ` Jon Hunter
2012-05-15 13:52 ` Will Deacon
2012-05-15 13:52 ` Will Deacon
2012-05-10 14:12 ` Kevin Hilman
2012-05-10 14:12 ` Kevin Hilman
2012-05-10 19:05 ` Jon Hunter
2012-05-10 19:05 ` Jon Hunter
2012-05-10 6:59 ` Santosh Shilimkar
2012-05-10 6:59 ` Santosh Shilimkar
2012-05-08 21:50 ` Paul Walmsley
2012-05-08 21:50 ` Paul Walmsley
2012-04-04 0:00 ` Paul Walmsley
2012-04-04 0:00 ` Paul Walmsley
2012-04-04 11:07 ` Will Deacon
2012-04-04 11:07 ` Will Deacon
2012-01-18 9:54 ` stephane eranian
2012-01-18 9:54 ` stephane eranian
2012-01-18 10:07 ` Ming Lei
2012-01-18 10:07 ` Ming Lei
2012-01-18 21:58 ` stephane eranian
2012-01-18 21:58 ` stephane eranian
2012-01-19 1:21 ` Ming Lei
2012-01-19 1:21 ` Ming Lei
2012-01-19 11:34 ` stephane eranian
2012-01-19 11:34 ` stephane eranian
2012-01-19 12:45 ` Ming Lei
2012-01-19 12:45 ` Ming Lei
2012-01-19 12:51 ` stephane eranian
2012-01-19 12:51 ` stephane eranian
2012-01-19 12:55 ` stephane eranian
2012-01-19 12:55 ` stephane eranian
2012-01-19 13:14 ` Ming Lei
2012-01-19 13:14 ` Ming Lei
2012-01-19 13:26 ` Ming Lei
2012-01-19 13:26 ` Ming Lei
2012-01-19 13:32 ` stephane eranian
2012-01-19 13:32 ` stephane eranian
2012-01-19 13:51 ` Ming Lei
2012-01-19 13:51 ` Ming Lei
2012-01-19 17:07 ` stephane eranian
2012-01-19 17:07 ` stephane eranian
2012-01-20 13:47 ` stephane eranian
2012-01-20 13:47 ` stephane eranian
2012-01-21 3:25 ` Ming Lei
2012-01-21 3:25 ` Ming Lei
2012-01-21 9:16 ` stephane eranian
2012-01-21 9:16 ` stephane eranian
2012-01-27 12:13 ` Will Deacon
2012-01-27 12:13 ` Will Deacon
2012-01-27 12:45 ` stephane eranian
2012-01-27 12:45 ` stephane eranian
2012-01-27 12:56 ` Måns Rullgård
2012-01-27 12:56 ` Måns Rullgård
2012-01-27 13:28 ` Will Deacon
2012-01-27 13:28 ` Will Deacon
2012-01-27 13:32 ` stephane eranian
2012-01-27 13:32 ` stephane eranian
2012-01-27 13:47 ` Måns Rullgård
2012-01-27 13:47 ` Måns Rullgård
2012-01-27 13:56 ` Will Deacon
2012-01-27 13:56 ` Will Deacon
2012-01-27 14:05 ` Måns Rullgård
2012-01-27 14:05 ` Måns Rullgård
2012-01-27 14:09 ` Ming Lei
2012-01-27 14:09 ` Ming Lei
2012-01-27 15:45 ` stephane eranian
2012-01-27 15:45 ` stephane eranian
2012-01-27 15:54 ` Will Deacon
2012-01-27 15:54 ` Will Deacon
2012-01-27 15:57 ` stephane eranian
2012-01-27 15:57 ` stephane eranian
2012-01-27 16:59 ` Will Deacon
2012-01-27 16:59 ` Will Deacon
2012-01-27 17:03 ` stephane eranian
2012-01-27 17:03 ` stephane eranian
2012-01-27 17:10 ` Will Deacon
2012-01-27 17:10 ` Will Deacon
2012-01-27 17:16 ` stephane eranian
2012-01-27 17:16 ` stephane eranian
2012-01-29 17:36 ` stephane eranian
2012-01-29 17:36 ` stephane eranian
2012-01-30 9:40 ` Ming Lei
2012-01-30 9:40 ` Ming Lei
2012-01-30 10:24 ` stephane eranian
2012-01-30 10:24 ` stephane eranian
2012-01-30 13:43 ` stephane eranian
2012-01-30 13:43 ` stephane eranian
2012-01-30 14:49 ` Ming Lei
2012-01-30 14:49 ` Ming Lei
2012-01-30 16:02 ` stephane eranian
2012-01-30 16:02 ` stephane eranian
2012-01-30 16:08 ` Måns Rullgård
2012-01-30 16:08 ` Måns Rullgård
2012-01-30 17:15 ` stephane eranian
2012-01-30 17:15 ` stephane eranian
2012-01-30 17:24 ` Will Deacon
2012-01-30 17:24 ` Will Deacon
2012-01-30 17:45 ` stephane eranian
2012-01-30 17:45 ` stephane eranian
2012-01-30 19:14 ` Will Deacon
2012-01-30 19:14 ` Will Deacon
2012-01-30 20:45 ` stephane eranian
2012-01-30 20:45 ` stephane eranian
2012-03-07 2:49 ` Ming Lei
2012-03-07 2:49 ` Ming Lei
2012-03-07 9:48 ` Will Deacon
2012-03-07 9:48 ` Will Deacon
2012-01-27 14:06 ` Ming Lei
2012-01-27 14:06 ` Ming Lei
2012-01-18 10:18 ` Russell King - ARM Linux
2012-01-18 10:18 ` Russell King - ARM Linux
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=1329323900.2293.150.camel@twins \
--to=a.p.zijlstra@chello.nl \
--cc=linux-arm-kernel@lists.infradead.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.