* [Adeos-main] [pull request] Improve ftrace interaction
@ 2010-03-09 18:04 Jan Kiszka
2010-03-13 15:59 ` Philippe Gerum
0 siblings, 1 reply; 3+ messages in thread
From: Jan Kiszka @ 2010-03-09 18:04 UTC (permalink / raw)
To: Philippe Gerum; +Cc: adeos-main
The following changes since commit 7c90959b7e4eb5ef8a775ec17005c23f30daade1:
Philippe Gerum (1):
ipipe: introduce 3-level IRQ pending map
are available in the git repository at:
git://git.kiszka.org/ipipe-2.6 queues/2.6.32-noarch
These patches address various possible configuration errors around
ftrace that can cause hard crashes over I-pipe kernels. Moreover, one
patch enables the safe use of ftrace's PID filtering that comes for free
for the I-pipe tracer now.
The patches also apply on 2.6.33-noarch but were only tested on
2.6.32-x86.
Jan Kiszka (5):
Use ipipe_safe_current in ftrace_pid_func
Prevent unsafe ftrace usage over I-pipe
Disable branch tracing/profiling under I-pipe
Do no kill ftrace on failing function test
Fix ipipe_safe_current definition for !CONFIG_IPIPE
include/linux/ftrace.h | 1 +
include/linux/ipipe.h | 2 +-
kernel/ipipe/tracer.c | 3 ++-
kernel/trace/Kconfig | 2 ++
kernel/trace/ftrace.c | 7 ++++++-
kernel/trace/trace_selftest.c | 2 ++
6 files changed, 14 insertions(+), 3 deletions(-)
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Adeos-main] [pull request] Improve ftrace interaction
2010-03-09 18:04 [Adeos-main] [pull request] Improve ftrace interaction Jan Kiszka
@ 2010-03-13 15:59 ` Philippe Gerum
2010-03-14 9:00 ` Jan Kiszka
0 siblings, 1 reply; 3+ messages in thread
From: Philippe Gerum @ 2010-03-13 15:59 UTC (permalink / raw)
To: Jan Kiszka; +Cc: adeos-main
On Tue, 2010-03-09 at 19:04 +0100, Jan Kiszka wrote:
> The following changes since commit 7c90959b7e4eb5ef8a775ec17005c23f30daade1:
> Philippe Gerum (1):
> ipipe: introduce 3-level IRQ pending map
>
> are available in the git repository at:
>
> git://git.kiszka.org/ipipe-2.6 queues/2.6.32-noarch
>
> These patches address various possible configuration errors around
> ftrace that can cause hard crashes over I-pipe kernels. Moreover, one
> patch enables the safe use of ftrace's PID filtering that comes for free
> for the I-pipe tracer now.
>
> The patches also apply on 2.6.33-noarch but were only tested on
> 2.6.32-x86.
>
>
> Jan Kiszka (5):
> Use ipipe_safe_current in ftrace_pid_func
> Prevent unsafe ftrace usage over I-pipe
This one looks pretty ugly. I would rather define a entry point for
registering ftrace hooks allowed to run in NMI context, and deny the
regular unsafe registration routine when the I-pipe tracer is enabled.
E.g.
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 872f2fe..c4ac9d5 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -2992,7 +2992,7 @@ void ftrace_kill(void)
* with "notrace", otherwise it will go into a
* recursive loop.
*/
-int register_ftrace_function(struct ftrace_ops *ops)
+static int _register_ftrace_function(struct ftrace_ops *ops)
{
int ret;
@@ -3008,6 +3008,23 @@ int register_ftrace_function(struct ftrace_ops *ops)
return ret;
}
+#ifdef CONFIG_IPIPE_TRACE
+int register_ftrace_function(struct ftrace_ops *ops)
+{
+ return -EINVAL;
+}
+
+int register_ftrace_nmi_function(struct ftrace_ops *ops)
+{
+ return _register_ftrace_function(ops);
+}
+#else
+int register_ftrace_function(struct ftrace_ops *ops)
+{
+ return _register_ftrace_function(ops);
+}
+#endif
+
diff --git a/kernel/ipipe/tracer.c b/kernel/ipipe/tracer.c
index 0a37201..e408cab 100644
--- a/kernel/ipipe/tracer.c
+++ b/kernel/ipipe/tracer.c
@@ -1331,7 +1331,7 @@ static int __ipipe_wr_enable(struct file *file, const char __user *buffer,
if (!val)
unregister_ftrace_function(&ipipe_trace_ops);
} else if (val)
- register_ftrace_function(&ipipe_trace_ops);
+ register_ftrace_nmi_function(&ipipe_trace_ops);
ipipe_trace_enable = val;
@@ -1405,7 +1405,7 @@ void __init __ipipe_init_tracer(void)
#ifdef CONFIG_IPIPE_TRACE_ENABLE
ipipe_trace_enable = 1;
#ifdef CONFIG_IPIPE_TRACE_MCOUNT
- register_ftrace_function(&ipipe_trace_ops);
+ register_ftrace_nmi_function(&ipipe_trace_ops);
#endif /* CONFIG_IPIPE_TRACE_MCOUNT */
#endif /* CONFIG_IPIPE_TRACE_ENABLE */
> Disable branch tracing/profiling under I-pipe
> Do no kill ftrace on failing function test
> Fix ipipe_safe_current definition for !CONFIG_IPIPE
>
> include/linux/ftrace.h | 1 +
> include/linux/ipipe.h | 2 +-
> kernel/ipipe/tracer.c | 3 ++-
> kernel/trace/Kconfig | 2 ++
> kernel/trace/ftrace.c | 7 ++++++-
> kernel/trace/trace_selftest.c | 2 ++
> 6 files changed, 14 insertions(+), 3 deletions(-)
>
> _______________________________________________
> Adeos-main mailing list
> Adeos-main@domain.hid
> https://mail.gna.org/listinfo/adeos-main
--
Philippe.
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Adeos-main] [pull request] Improve ftrace interaction
2010-03-13 15:59 ` Philippe Gerum
@ 2010-03-14 9:00 ` Jan Kiszka
0 siblings, 0 replies; 3+ messages in thread
From: Jan Kiszka @ 2010-03-14 9:00 UTC (permalink / raw)
To: Philippe Gerum; +Cc: adeos-main
[-- Attachment #1.1: Type: text/plain, Size: 1267 bytes --]
Philippe Gerum wrote:
> On Tue, 2010-03-09 at 19:04 +0100, Jan Kiszka wrote:
>> The following changes since commit 7c90959b7e4eb5ef8a775ec17005c23f30daade1:
>> Philippe Gerum (1):
>> ipipe: introduce 3-level IRQ pending map
>>
>> are available in the git repository at:
>>
>> git://git.kiszka.org/ipipe-2.6 queues/2.6.32-noarch
>>
>> These patches address various possible configuration errors around
>> ftrace that can cause hard crashes over I-pipe kernels. Moreover, one
>> patch enables the safe use of ftrace's PID filtering that comes for free
>> for the I-pipe tracer now.
>>
>> The patches also apply on 2.6.33-noarch but were only tested on
>> 2.6.32-x86.
>>
>>
>> Jan Kiszka (5):
>> Use ipipe_safe_current in ftrace_pid_func
>> Prevent unsafe ftrace usage over I-pipe
>
> This one looks pretty ugly. I would rather define a entry point for
> registering ftrace hooks allowed to run in NMI context, and deny the
> regular unsafe registration routine when the I-pipe tracer is enabled.
I just learned yesterday from Frederic that the ftrace ring buffer
should be NMI-safe by now. I need to look into this again, maybe we can
make _much_ more of ftrace usable for I-pipe. IOW: Series on hold.
Jan
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 258 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-03-14 9:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-09 18:04 [Adeos-main] [pull request] Improve ftrace interaction Jan Kiszka
2010-03-13 15:59 ` Philippe Gerum
2010-03-14 9:00 ` Jan Kiszka
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.