linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: oprofile and ARM A9 hardware counter
Date: Fri, 17 Feb 2012 10:26:43 +0000	[thread overview]
Message-ID: <20120217102643.GA17909@mudshark.cambridge.arm.com> (raw)
In-Reply-To: <CACVXFVO4eexVK-S5TdRk2T6pyKRzpW1HxBQxo0Yfk_ziaO_U4Q@mail.gmail.com>

On Fri, Feb 17, 2012 at 05:24:02AM +0000, Ming Lei wrote:
> On Fri, Feb 17, 2012 at 2:08 AM, Will Deacon <will.deacon@arm.com> wrote:
> 
> >
> > The more I think about this, the more I think that the overflow parameter to
> > armpmu_event_update needs to go. It was introduced to prevent massive event
> > loss in non-sampling mode, but I think we can get around that by changing
> > the default sample_period to be half of the max_period, therefore giving
> > ourselves a much better chance of handling the interrupt before new wraps
> > around past prev.
> >
> > Ming Lei - can you try the following please? If it works for you, then I'll
> > do it properly and kill the overflow parameter altogether.
> 
> Of course, it does work for the problem reported by Stephane since
> it changes the delta computation basically as I did, but I am afraid that
> it may be not good enough for the issue fixed in a737823d ("ARM: 6835/1:
> perf: ensure overflows aren't missed due to IRQ latency").

I think it does solve that problem.

> >
> > ? ? ? ?if (!hwc->sample_period) {
> > - ? ? ? ? ? ? ? hwc->sample_period ?= armpmu->max_period;
> > + ? ? ? ? ? ? ? hwc->sample_period ?= armpmu->max_period >> 1;
> 
> If you assume that the issue addressed by a737823d can only happen in
> non-sample situation, Peter's idea of u32 cast is OK and maybe simpler.

I don't want to assume that the counters are 32-bit in this code as we may
want to plug in some other PMU with 16-bit counters, for example. That's why
we have max_period defined for each PMU. Furthermore, it still doesn't help us
in the stat case where prev will typically be quite small after we've had an
overflow and new may well overtake it.

> But I am afraid that the issue still can be triggered in sample-based situation,
> especially in very high frequency case: suppose the sample freq is 10000,
> 100us IRQ delay may trigger the issue.

Not sure I follow. If the frequency is 10000, then we write 0xffffd8f0 to
the counter. That means we have a 0xffffd8f0 event window to read the
counter after it overflows before new overtakes prev and we get confused.
If this passed in 100us then either your clock speed is 4.3*10^12Hz or you
have a seriously wide issue :)

> So we may use the overflow information to make perf more robust, IMO.

There's a trade off between allowing the counter to wrap back around past
its previous value or being able to handle overflow on a non-interrupt path.
Given that the former problem is only a real issue for non-sampling runs,
halving the period in that case should sort it (and it does stop my simple
test case from exploding).

Will

  reply	other threads:[~2012-02-17 10:26 UTC|newest]

Thread overview: 134+ 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-15 16:38                     ` Peter Zijlstra
2012-02-16 10:25                       ` Ming Lei
2012-02-16 15:00                         ` Will Deacon
2012-02-16 16:12                           ` Ming Lei
2012-02-16 16:19                             ` Peter Zijlstra
2012-02-16 16:37                               ` Ming Lei
2012-02-16 18:08                                 ` Will Deacon
2012-02-17  5:24                                   ` Ming Lei
2012-02-17 10:26                                     ` Will Deacon [this message]
2012-02-20  3:19                                       ` Ming Lei
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 23:30     ` Ming Lei
2012-01-10  0:46       ` stephane eranian
2012-01-18  4:18         ` Ming Lei
2012-01-18  9:33           ` Ming Lei
2012-01-18 11:39             ` Shilimkar, Santosh
2012-01-18 12:24               ` Ming Lei
2012-01-18 12:33                 ` Shilimkar, Santosh
2012-04-03  9:25                   ` Will Deacon
2012-04-03  9:42                     ` Shilimkar, Santosh
2012-04-03  9:47                       ` Will Deacon
2012-04-03 10:01                         ` Shilimkar, Santosh
2012-04-03 12:34                           ` Will Deacon
2012-04-03 12:41                             ` Shilimkar, Santosh
2012-04-03 14:27                             ` Kevin Hilman
2012-04-03 16:07                               ` Will Deacon
2012-04-03 23:14                                 ` Kevin Hilman
2012-04-03 23:29                                   ` Paul Walmsley
2012-04-04  3:42                                     ` Ming Lei
2012-04-04 11:15                                     ` Will Deacon
2012-04-26 18:07                                       ` Will Deacon
2012-04-30 22:25                                         ` Kevin Hilman
2012-05-07 17:27                                           ` Ming Lei
2012-05-04 22:17                                         ` Jon Hunter
2012-05-07 17:15                                           ` Kevin Hilman
2012-05-07 19:53                                             ` Jon Hunter
2012-05-07 23:28                                               ` Kevin Hilman
2012-05-08 11:01                                                 ` Cousson, Benoit
2012-05-08 11:23                                                   ` Jean Pihet
2012-05-08 12:37                                                     ` Cousson, Benoit
2012-05-08 13:18                                                       ` Jean Pihet
2012-05-08 14:00                                                         ` Kevin Hilman
2012-05-08 14:03                                                           ` Cousson, Benoit
2012-05-08 16:18                                                             ` Kevin Hilman
2012-05-08 19:51                                                               ` Jon Hunter
2012-05-08 21:28                                                                 ` Kevin Hilman
2012-05-08 22:20                                                                   ` Jon Hunter
2012-05-08 22:12                                                                 ` Ming Lei
2012-05-08 17:31                                                   ` Jon Hunter
2012-05-08 21:22                                                     ` Kevin Hilman
2012-05-08 23:59                                                       ` Jon Hunter
2012-05-09 10:58                                                       ` Cousson, Benoit
2012-05-09 18:04                                                         ` Jon Hunter
2012-05-09 19:28                                                           ` Jon Hunter
2012-05-09 21:45                                                             ` Jon Hunter
2012-05-10  8:44                                                               ` Will Deacon
2012-05-10  9:12                                                                 ` stephane eranian
2012-05-10 18:55                                                                 ` Jon Hunter
2012-05-11 12:25                                                                   ` Will Deacon
2012-05-11 13:47                                                                     ` Jon Hunter
2012-05-11 13:49                                                                       ` Will Deacon
2012-05-11 14:52                                                                         ` Jon Hunter
2012-05-11 15:02                                                                           ` Will Deacon
2012-05-11 16:31                                                                             ` Jon Hunter
2012-05-11 16:38                                                                               ` Will Deacon
2012-05-11 23:51                                                                                 ` Jon Hunter
2012-05-15 13:52                                                                                   ` Will Deacon
2012-05-10 14:12                                                               ` Kevin Hilman
2012-05-10 19:05                                                                 ` Jon Hunter
2012-05-10  6:59                                                         ` Santosh Shilimkar
2012-05-08 21:50                                                 ` Paul Walmsley
2012-04-04  0:00                             ` Paul Walmsley
2012-04-04 11:07                               ` Will Deacon
2012-01-18  9:54           ` stephane eranian
2012-01-18 10:07             ` Ming Lei
2012-01-18 21:58               ` stephane eranian
2012-01-19  1:21                 ` Ming Lei
2012-01-19 11:34                   ` stephane eranian
2012-01-19 12:45                     ` Ming Lei
2012-01-19 12:51                       ` stephane eranian
2012-01-19 12:55                         ` stephane eranian
2012-01-19 13:14                         ` Ming Lei
2012-01-19 13:26                           ` Ming Lei
2012-01-19 13:32                             ` stephane eranian
2012-01-19 13:51                               ` Ming Lei
2012-01-19 17:07                                 ` stephane eranian
2012-01-20 13:47                                   ` stephane eranian
2012-01-21  3:25                                     ` Ming Lei
2012-01-21  9:16                                       ` stephane eranian
2012-01-27 12:13                                         ` Will Deacon
2012-01-27 12:45                                           ` stephane eranian
2012-01-27 12:56                                           ` Måns Rullgård
2012-01-27 13:28                                             ` Will Deacon
2012-01-27 13:32                                               ` stephane eranian
2012-01-27 13:47                                               ` Måns Rullgård
2012-01-27 13:56                                                 ` Will Deacon
2012-01-27 14:05                                                   ` Måns Rullgård
2012-01-27 14:09                                               ` Ming Lei
2012-01-27 15:45                                                 ` stephane eranian
2012-01-27 15:54                                                   ` Will Deacon
2012-01-27 15:57                                                     ` stephane eranian
2012-01-27 16:59                                                       ` Will Deacon
2012-01-27 17:03                                                         ` stephane eranian
2012-01-27 17:10                                                           ` Will Deacon
2012-01-27 17:16                                                             ` stephane eranian
2012-01-29 17:36                                                               ` stephane eranian
2012-01-30  9:40                                                                 ` Ming Lei
2012-01-30 10:24                                                                   ` stephane eranian
2012-01-30 13:43                                                                     ` stephane eranian
2012-01-30 14:49                                                                       ` Ming Lei
2012-01-30 16:02                                                                         ` stephane eranian
2012-01-30 16:08                                                                           ` Måns Rullgård
2012-01-30 17:15                                                                             ` stephane eranian
2012-01-30 17:24                                                                               ` Will Deacon
2012-01-30 17:45                                                                                 ` stephane eranian
2012-01-30 19:14                                                                                   ` Will Deacon
2012-01-30 20:45                                                                                     ` stephane eranian
2012-03-07  2:49                                                     ` Ming Lei
2012-03-07  9:48                                                       ` Will Deacon
2012-01-27 14:06                                           ` Ming Lei
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=20120217102643.GA17909@mudshark.cambridge.arm.com \
    --to=will.deacon@arm.com \
    --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 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).