From: Robert Richter <robert.richter@amd.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: LKML <linux-kernel@vger.kernel.org>,
oprofile-list <oprofile-list@lists.sourceforge.net>,
Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: Re: [PATCH 4/5] oprofile: Remove exit function for timer mode
Date: Wed, 19 Oct 2011 20:07:41 +0200 [thread overview]
Message-ID: <20111019180741.GI24346@erda.amd.com> (raw)
In-Reply-To: <1318861624-715-6-git-send-email-robert.richter@amd.com>
See below for Some more comments after testing and reviewing the
code. Will send a new version with these comments incorporated.
-Robert
On 17.10.11 10:27:04, Robert Richter wrote:
> +static struct notifier_block __cpuinitdata nmi_timer_cpu_nb = {
The __cpuinitdata attribute causes a section mismatch, will fix it.
> + .notifier_call = nmi_timer_cpu_notifier
> +};
> +static int nmi_timer_setup(void)
> +{
> + int cpu, err;
> +
> + /* clock cycles per tick: */
> + nmi_timer_attr.sample_period = (u64)cpu_khz * TICK_NSEC / NSEC_PER_MSEC;
This is broken on 32 bit.
Will replace it with:
/* clock cycles per tick: */
period = (u64)cpu_khz * 1000;
do_div(period, HZ);
nmi_timer_attr.sample_period = period;
> + pr_info("sample_period: %lld, cpu_khz: %d, nsec/tick: %ld\n",
> + nmi_timer_attr.sample_period, cpu_khz, TICK_NSEC);
I will remove this pr_info().
> +
> + get_online_cpus();
> + err = register_cpu_notifier(&nmi_timer_cpu_nb);
> + if (err)
> + goto out;
> diff --git a/drivers/oprofile/oprof.c b/drivers/oprofile/oprof.c
> index f7cd069..af9cbea 100644
> --- a/drivers/oprofile/oprof.c
> +++ b/drivers/oprofile/oprof.c
> @@ -248,15 +248,21 @@ static int __init oprofile_init(void)
> /* always init architecture to setup backtrace support */
> err = oprofile_arch_init(&oprofile_ops);
>
> - timer_mode = err || timer; /* fall back to timer mode on errors */
> + timer_mode = err || timer;
> if (timer_mode) {
> if (!err)
> oprofile_arch_exit();
> - err = oprofile_timer_init(&oprofile_ops);
> - if (err)
> - return err;
> + /* no nmi timer mode if oprofile.timer is set: */
> + if (!timer)
> + err = op_nmi_timer_init(&oprofile_ops);
As nmi timer is initialized here, we can remove it in arch/x86. This
eases setup functions for x86.
> + /* fall back to timer mode on errors: */
> + if (err || timer)
> + err = oprofile_timer_init(&oprofile_ops);
> }
>
> + if (err)
> + return err;
> +
> err = oprofilefs_register();
> if (!err)
> return 0;
--
Advanced Micro Devices, Inc.
Operating System Research Center
next prev parent reply other threads:[~2011-10-19 18:08 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-17 14:26 [PATCH 0/5] oprofile: Updates and fixes for timer modes Robert Richter
2011-10-17 14:27 ` [PATCH 1/5] oprofile, x86: Add kernel parameter Robert Richter
2011-10-17 14:27 ` [PATCH 2/5] oprofile: Fix crash when unloading module (hr timer Robert Richter
2011-10-18 6:12 ` Ingo Molnar
2011-10-17 14:27 ` [PATCH 3/5] oprofile, x86: Fix crash when unloading module (nmi Robert Richter
2011-10-17 14:27 ` [PATCH 4/5] oprofile: Remove exit function for timer mode Robert Richter
2011-10-18 6:13 ` Ingo Molnar
2011-10-19 16:33 ` Robert Richter
2011-10-17 14:27 ` [PATCH 5/5] oprofile, x86: Reimplement nmi timer mode using perf Robert Richter
2011-10-18 10:59 ` Peter Zijlstra
2011-10-19 16:52 ` Robert Richter
2011-10-19 18:07 ` Robert Richter [this message]
2011-10-17 15:22 ` [PATCH 0/5] oprofile: Updates and fixes for timer modes Robert Richter
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=20111019180741.GI24346@erda.amd.com \
--to=robert.richter@amd.com \
--cc=a.p.zijlstra@chello.nl \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=oprofile-list@lists.sourceforge.net \
/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.