From: Paul Mundt <lethal@linux-sh.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: register_timer_hook use in arch/sh/oprofile
Date: Wed, 24 Jun 2009 22:14:40 +0900 [thread overview]
Message-ID: <20090624131440.GA9700@linux-sh.org> (raw)
In-Reply-To: <20090624124542.GB32306@elte.hu>
On Wed, Jun 24, 2009 at 02:45:42PM +0200, Ingo Molnar wrote:
>
> * Paul Mundt <lethal@linux-sh.org> wrote:
>
> > My current plan is to migrate things over to the perf_counter API
> > and annoy Ingo with my interrupt deprived counters ;-)
>
> Please do :-)
>
> I just wrote a longer explanation about them: i think they can be
> made full-blown hardware counters, which in the end would be
> basically just as capable as 'real' IRQ capable counters.
>
Thanks for the hints, now that all of my -rc1 stuff is out of the way,
I've got some spare cycles to start working on the hardware counters.
The lack of design awareness for these sorts of use cases has been one of
the biggest hassles of trying to deal with oprofile and the various
incarnations of perfmon and so on in the past, but perf_counter certainly
looks like a good way forward here.
> The main complication that such counters bring is that in their 'own
> metric' they do interrupt periods in an 'irregular' way (because
> they interrupt in the nanosec metric - being hrtimers) - but both
> the tools can deal with uneven periods just fine and the auto-freq
> code can auto-balance based on this just fine too.
>
How we have mostly handled these counters in the past have been for
long-term workload analysis. A given user wants to measure certain events
across the lifetime of their workload to get an idea of where the hot
spots are, and then send us numbers later. 64-bit hardware counters give
them quite a bit of time to accumulate results, and in these cases
precision is not so important as continuous non-interactive monitoring.
On the other hand trying to beat these sorts of counters in to a
framework where they can leverage existing userspace tools has never
really worked as well as it could have, and this too is something that
perf_counter seems well suited to accomodate.
I knew quite a few other architectures that also have similar counters,
so having these tie in cleanly in a generic way will make these a lot
more useful, especially since in the past people have either just thrown
them at sysfs or just ignored them completely.
> So you should be able to implement this within arch/sh/ with
> existing perf_counter facilities and hrtimers, or you can help us
> librarize it in kernel/perf_counter.c some more, to minimize
> architecture code.
>
Architecturally we have two fairly different counter types that follow a
similar design, so they will need separate drivers regardless. I don't
have much interest in hiding generic stuff in arch/sh/, especially given
that we aren't the only ones with these types of counters, so I'll
certainly hack on kernel/perf_counter.c as necessary to get things moving
along. I expect between the two types of SH counters we have to handle
there will already be quite a bit of variation.
> [ Of course, given that you are the first architecture to do this,
> you would be fair to expect some unexpected details along the way
> as well ;-) ]
>
That tends to be the way things go more often than not. In any event,
it's certainly worth spending time on getting right, and I would rather
spend my time being the guinea pig for evolving in-tree code than not
having the counters be useful at all. ;-)
next prev parent reply other threads:[~2009-06-24 13:15 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-24 11:11 register_timer_hook use in arch/sh/oprofile Martin Schwidefsky
2009-06-24 11:29 ` Paul Mundt
2009-06-24 12:17 ` Ingo Molnar
2009-06-24 12:25 ` Paul Mundt
2009-06-24 12:37 ` Ingo Molnar
2009-06-24 12:40 ` Paul Mackerras
2009-06-24 12:47 ` Ingo Molnar
2009-06-24 12:28 ` Martin Schwidefsky
2009-06-24 12:34 ` Paul Mundt
2009-06-24 12:45 ` Ingo Molnar
2009-06-24 13:14 ` Paul Mundt [this message]
2009-06-24 13:24 ` Ingo Molnar
2009-06-26 7:01 ` Peter Zijlstra
2009-06-26 7:23 ` Ingo Molnar
2009-06-26 7:26 ` Paul Mundt
2009-06-26 7:36 ` Peter Zijlstra
2009-06-24 12:54 ` Martin Schwidefsky
2009-12-16 4:52 ` Paul Mundt
2009-12-16 7:21 ` Ingo Molnar
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=20090624131440.GA9700@linux-sh.org \
--to=lethal@linux-sh.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=schwidefsky@de.ibm.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