From: Martin Schwidefsky <schwidefsky@de.ibm.com>
To: lethal@linux-sh.org
Cc: Ingo Molnar <mingo@elte.hu>, linux-kernel <linux-kernel@vger.kernel.org>
Subject: register_timer_hook use in arch/sh/oprofile
Date: Wed, 24 Jun 2009 13:11:04 +0200 [thread overview]
Message-ID: <20090624131104.705c828d@skybase> (raw)
Hi Paul,
following Ingo's suggestion I'm working on a patch to use a per-cpu
hrtimer instead of the timer_hook for the oprofile ticks. Given that
oprofile is the only user of the timer_hook I want to remove it
completely. That way I came across the register_timer_hook call in
arch/sh/oprofile/op_model_sh7750.c. Did this ever work? The startup
of oprofile is done in two steps, on module load oprofile_init is
called, on profiling start oprofile_start is called.
Now for SH7750 this happens:
oprofile_init()
...
oprofile_arch_init(&oprofile_ops);
...
lmodel->init();
/* init() is sh7750_ppc_init for CPU_SH7750/CPU_7750S */
sh7750_ppc_reset();
register_timer_hook(sh7750_timer_notify);
...
...
oprofile_timer_init(&oprofile_ops);
...
ops->start = timer_start;
...
...
oprofile_start()
...
oprofile_ops.start();
/* start() is timer_start set by oprofile_timer_init */
register_timer_hook(timer_notify);
...
As far as I can see the second register_timer_hook will fail
because sh7750_timer_notify is already registered. That will cause
oprofile_start to fail with -EBUSY, no?
My proposed solution for that particular problem would be to remove the
sh7750_timer_notify function together with the register/unregister
calls, see patch below. Then the sole caller of register_timer_hook
would be in drivers/oprofile/timer_int.c and after that has been
converted to hrtimer the whole timer_hook stuff could go away.
---
diff -urpN linux-2.6/arch/sh/oprofile/op_model_sh7750.c linux-2.6-patched/arch/sh/oprofile/op_model_sh7750.c
--- linux-2.6/arch/sh/oprofile/op_model_sh7750.c 2009-06-10 05:05:27.000000000 +0200
+++ linux-2.6-patched/arch/sh/oprofile/op_model_sh7750.c 2009-06-24 13:07:08.000000000 +0200
@@ -95,12 +95,6 @@ static struct sh7750_ppc_register_config
* behavior.
*/
-static int sh7750_timer_notify(struct pt_regs *regs)
-{
- oprofile_add_sample(regs, 0);
- return 0;
-}
-
static u64 sh7750_read_counter(int counter)
{
return (u64)((u64)(__raw_readl(PMCTRH(counter)) & 0xffff) << 32) |
@@ -231,14 +225,11 @@ static inline void sh7750_ppc_reset(void
static int sh7750_ppc_init(void)
{
sh7750_ppc_reset();
-
- return register_timer_hook(sh7750_timer_notify);
+ return 0;
}
static void sh7750_ppc_exit(void)
{
- unregister_timer_hook(sh7750_timer_notify);
-
sh7750_ppc_reset();
}
---
--
blue skies,
Martin.
"Reality continues to ruin my life." - Calvin.
next reply other threads:[~2009-06-24 11:11 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-24 11:11 Martin Schwidefsky [this message]
2009-06-24 11:29 ` register_timer_hook use in arch/sh/oprofile 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
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=20090624131104.705c828d@skybase \
--to=schwidefsky@de.ibm.com \
--cc=lethal@linux-sh.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/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.