From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@elte.hu>,
Frederic Weisbecker <fweisbec@gmail.com>,
Abhishek Sagar <sagar.abhishek@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Thomas Gleixner <tglx@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>,
Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Steven Rostedt <srostedt@redhat.com>
Subject: [PATCH 05/11] ftrace: only have ftrace_kill atomic
Date: Wed, 22 Oct 2008 14:43:18 -0400 [thread overview]
Message-ID: <20081022185136.312667539@goodmis.org> (raw)
In-Reply-To: 20081022184313.179487464@goodmis.org
[-- Attachment #1: ftrace-only-kill-atomic.patch --]
[-- Type: text/plain, Size: 4077 bytes --]
Only have a way to completely disable ftrace in atomic sections.
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
---
include/linux/ftrace.h | 3 +--
kernel/trace/ftrace.c | 43 ++-----------------------------------------
kernel/trace/trace.c | 2 +-
3 files changed, 4 insertions(+), 44 deletions(-)
Index: linux-compile.git/include/linux/ftrace.h
===================================================================
--- linux-compile.git.orig/include/linux/ftrace.h 2008-10-22 13:17:26.000000000 -0400
+++ linux-compile.git/include/linux/ftrace.h 2008-10-22 13:17:29.000000000 -0400
@@ -40,7 +40,7 @@ extern void ftrace_stub(unsigned long a0
# define register_ftrace_function(ops) do { } while (0)
# define unregister_ftrace_function(ops) do { } while (0)
# define clear_ftrace_function(ops) do { } while (0)
-static inline void ftrace_kill_atomic(void) { }
+static inline void ftrace_kill(void) { }
#endif /* CONFIG_FTRACE */
#ifdef CONFIG_DYNAMIC_FTRACE
@@ -97,7 +97,6 @@ static inline void ftrace_release(void *
/* totally disable ftrace - can not re-enable after this */
void ftrace_kill(void);
-void ftrace_kill_atomic(void);
static inline void tracer_disable(void)
{
Index: linux-compile.git/kernel/trace/ftrace.c
===================================================================
--- linux-compile.git.orig/kernel/trace/ftrace.c 2008-10-22 13:17:26.000000000 -0400
+++ linux-compile.git/kernel/trace/ftrace.c 2008-10-22 13:17:29.000000000 -0400
@@ -606,7 +606,6 @@ ftrace_code_disable(struct dyn_ftrace *r
print_ip_ins(" expected: ", call);
print_ip_ins(" replace: ", nop);
printk(KERN_CONT "\n");
- break;
rec->flags |= FTRACE_FL_FAILED;
return 0;
@@ -1526,22 +1525,6 @@ int ftrace_force_update(void)
return ret;
}
-static void ftrace_force_shutdown(void)
-{
- struct task_struct *task;
- int command = FTRACE_DISABLE_CALLS | FTRACE_UPDATE_TRACE_FUNC;
-
- mutex_lock(&ftraced_lock);
- task = ftraced_task;
- ftraced_task = NULL;
- ftraced_suspend = -1;
- ftrace_run_update_code(command);
- mutex_unlock(&ftraced_lock);
-
- if (task)
- kthread_stop(task);
-}
-
static __init int ftrace_init_debugfs(void)
{
struct dentry *d_tracer;
@@ -1734,17 +1717,16 @@ core_initcall(ftrace_dynamic_init);
# define ftrace_shutdown() do { } while (0)
# define ftrace_startup_sysctl() do { } while (0)
# define ftrace_shutdown_sysctl() do { } while (0)
-# define ftrace_force_shutdown() do { } while (0)
#endif /* CONFIG_DYNAMIC_FTRACE */
/**
- * ftrace_kill_atomic - kill ftrace from critical sections
+ * ftrace_kill - kill ftrace
*
* This function should be used by panic code. It stops ftrace
* but in a not so nice way. If you need to simply kill ftrace
* from a non-atomic section, use ftrace_kill.
*/
-void ftrace_kill_atomic(void)
+void ftrace_kill(void)
{
ftrace_disabled = 1;
ftrace_enabled = 0;
@@ -1755,27 +1737,6 @@ void ftrace_kill_atomic(void)
}
/**
- * ftrace_kill - totally shutdown ftrace
- *
- * This is a safety measure. If something was detected that seems
- * wrong, calling this function will keep ftrace from doing
- * any more modifications, and updates.
- * used when something went wrong.
- */
-void ftrace_kill(void)
-{
- mutex_lock(&ftrace_sysctl_lock);
- ftrace_disabled = 1;
- ftrace_enabled = 0;
-
- clear_ftrace_function();
- mutex_unlock(&ftrace_sysctl_lock);
-
- /* Try to totally disable ftrace */
- ftrace_force_shutdown();
-}
-
-/**
* register_ftrace_function - register a function for profiling
* @ops - ops structure that holds the function for profiling.
*
Index: linux-compile.git/kernel/trace/trace.c
===================================================================
--- linux-compile.git.orig/kernel/trace/trace.c 2008-10-22 13:17:26.000000000 -0400
+++ linux-compile.git/kernel/trace/trace.c 2008-10-22 13:17:29.000000000 -0400
@@ -3097,7 +3097,7 @@ void ftrace_dump(void)
dump_ran = 1;
/* No turning back! */
- ftrace_kill_atomic();
+ ftrace_kill();
for_each_tracing_cpu(cpu) {
atomic_inc(&global_trace.data[cpu]->disabled);
--
next prev parent reply other threads:[~2008-10-22 18:53 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-22 18:43 [PATCH 00/11] ftrace: clean ups and fixes Steven Rostedt
2008-10-22 18:43 ` [PATCH 01/11] ftrace: handle generic arch calls Steven Rostedt
2008-10-22 18:56 ` Andrew Morton
2008-10-22 19:02 ` Steven Rostedt
2008-10-27 17:41 ` Steven Rostedt
2008-10-29 19:00 ` Sam Ravnborg
2008-10-29 19:14 ` Steven Rostedt
2008-10-29 19:24 ` Steven Rostedt
2008-10-29 19:49 ` Sam Ravnborg
2008-10-29 20:16 ` Adrian Bunk
2008-10-29 20:23 ` Steven Rostedt
2008-10-29 20:31 ` Adrian Bunk
2008-10-29 20:22 ` Adrian Bunk
2008-10-29 19:30 ` [PATCH] ftrace, kbuild: condense recordmcount.pl parameter code Steven Rostedt
2008-10-30 23:37 ` Ingo Molnar
2008-10-31 16:16 ` Sam Ravnborg
2008-10-22 18:43 ` [PATCH 02/11] ftrace: dynamic ftrace process only text section Steven Rostedt
2008-10-22 18:43 ` [PATCH 03/11] ftrace: return error on failed modified text Steven Rostedt
2008-10-22 18:55 ` Steven Rostedt
2008-10-22 18:57 ` Andrew Morton
2008-10-22 19:03 ` Steven Rostedt
2008-10-22 18:43 ` [PATCH 04/11] ftrace: comment arch ftrace code Steven Rostedt
2008-10-22 19:09 ` Andrew Morton
2008-10-22 19:16 ` Steven Rostedt
2008-10-22 19:26 ` Andrew Morton
2008-10-22 18:43 ` Steven Rostedt [this message]
2008-10-22 19:11 ` [PATCH 05/11] ftrace: only have ftrace_kill atomic Andrew Morton
2008-10-22 19:18 ` Steven Rostedt
2008-10-22 19:27 ` Andrew Morton
2008-10-22 18:43 ` [PATCH 06/11] ftrace: add ftrace warn on to disable ftrace Steven Rostedt
2008-10-22 19:12 ` Andrew Morton
2008-10-22 19:20 ` Steven Rostedt
2008-10-22 18:43 ` [PATCH 07/11] ftrace: do not trace init sections Steven Rostedt
2008-10-22 18:43 ` [PATCH 08/11] ftrace: disable dynamic ftrace for all archs that use daemon Steven Rostedt
2008-10-22 18:43 ` [PATCH 09/11] ftrace: remove daemon Steven Rostedt
2008-10-22 18:43 ` [PATCH 10/11] ftrace: remove mcount set Steven Rostedt
2008-10-22 18:43 ` [PATCH 11/11] ftrace: remove ftrace hash Steven Rostedt
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=20081022185136.312667539@goodmis.org \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=sagar.abhishek@gmail.com \
--cc=srostedt@redhat.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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