aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_functions.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-02-17 19:09:07 -0500
committerIngo Molnar <mingo@elte.hu>2009-02-17 19:09:07 -0500
commitac07bcaa8259841905ead3f8cd60b1923ca6c0e5 (patch)
tree162def1cd53ef477adca17fe06c33a484f6b2e87 /kernel/trace/trace_functions.c
parent37bd824a35a60abc73e5fa8816bd5f50c913d69b (diff)
parent35ebf1caa4854ad5ba25f3a72967acc064147994 (diff)
Merge branch 'tip/tracing/ftrace' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace
Diffstat (limited to 'kernel/trace/trace_functions.c')
-rw-r--r--kernel/trace/trace_functions.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/kernel/trace/trace_functions.c b/kernel/trace/trace_functions.c
index f520aa419df..4c113a8c466 100644
--- a/kernel/trace/trace_functions.c
+++ b/kernel/trace/trace_functions.c
@@ -269,21 +269,21 @@ ftrace_traceoff(unsigned long ip, unsigned long parent_ip, void **data)
269 269
270static int 270static int
271ftrace_trace_onoff_print(struct seq_file *m, unsigned long ip, 271ftrace_trace_onoff_print(struct seq_file *m, unsigned long ip,
272 struct ftrace_hook_ops *ops, void *data); 272 struct ftrace_probe_ops *ops, void *data);
273 273
274static struct ftrace_hook_ops traceon_hook_ops = { 274static struct ftrace_probe_ops traceon_probe_ops = {
275 .func = ftrace_traceon, 275 .func = ftrace_traceon,
276 .print = ftrace_trace_onoff_print, 276 .print = ftrace_trace_onoff_print,
277}; 277};
278 278
279static struct ftrace_hook_ops traceoff_hook_ops = { 279static struct ftrace_probe_ops traceoff_probe_ops = {
280 .func = ftrace_traceoff, 280 .func = ftrace_traceoff,
281 .print = ftrace_trace_onoff_print, 281 .print = ftrace_trace_onoff_print,
282}; 282};
283 283
284static int 284static int
285ftrace_trace_onoff_print(struct seq_file *m, unsigned long ip, 285ftrace_trace_onoff_print(struct seq_file *m, unsigned long ip,
286 struct ftrace_hook_ops *ops, void *data) 286 struct ftrace_probe_ops *ops, void *data)
287{ 287{
288 char str[KSYM_SYMBOL_LEN]; 288 char str[KSYM_SYMBOL_LEN];
289 long count = (long)data; 289 long count = (long)data;
@@ -291,12 +291,14 @@ ftrace_trace_onoff_print(struct seq_file *m, unsigned long ip,
291 kallsyms_lookup(ip, NULL, NULL, NULL, str); 291 kallsyms_lookup(ip, NULL, NULL, NULL, str);
292 seq_printf(m, "%s:", str); 292 seq_printf(m, "%s:", str);
293 293
294 if (ops == &traceon_hook_ops) 294 if (ops == &traceon_probe_ops)
295 seq_printf(m, "traceon"); 295 seq_printf(m, "traceon");
296 else 296 else
297 seq_printf(m, "traceoff"); 297 seq_printf(m, "traceoff");
298 298
299 if (count != -1) 299 if (count == -1)
300 seq_printf(m, ":unlimited\n");
301 else
300 seq_printf(m, ":count=%ld", count); 302 seq_printf(m, ":count=%ld", count);
301 seq_putc(m, '\n'); 303 seq_putc(m, '\n');
302 304
@@ -306,15 +308,15 @@ ftrace_trace_onoff_print(struct seq_file *m, unsigned long ip,
306static int 308static int
307ftrace_trace_onoff_unreg(char *glob, char *cmd, char *param) 309ftrace_trace_onoff_unreg(char *glob, char *cmd, char *param)
308{ 310{
309 struct ftrace_hook_ops *ops; 311 struct ftrace_probe_ops *ops;
310 312
311 /* we register both traceon and traceoff to this callback */ 313 /* we register both traceon and traceoff to this callback */
312 if (strcmp(cmd, "traceon") == 0) 314 if (strcmp(cmd, "traceon") == 0)
313 ops = &traceon_hook_ops; 315 ops = &traceon_probe_ops;
314 else 316 else
315 ops = &traceoff_hook_ops; 317 ops = &traceoff_probe_ops;
316 318
317 unregister_ftrace_function_hook_func(glob, ops); 319 unregister_ftrace_function_probe_func(glob, ops);
318 320
319 return 0; 321 return 0;
320} 322}
@@ -322,7 +324,7 @@ ftrace_trace_onoff_unreg(char *glob, char *cmd, char *param)
322static int 324static int
323ftrace_trace_onoff_callback(char *glob, char *cmd, char *param, int enable) 325ftrace_trace_onoff_callback(char *glob, char *cmd, char *param, int enable)
324{ 326{
325 struct ftrace_hook_ops *ops; 327 struct ftrace_probe_ops *ops;
326 void *count = (void *)-1; 328 void *count = (void *)-1;
327 char *number; 329 char *number;
328 int ret; 330 int ret;
@@ -336,9 +338,9 @@ ftrace_trace_onoff_callback(char *glob, char *cmd, char *param, int enable)
336 338
337 /* we register both traceon and traceoff to this callback */ 339 /* we register both traceon and traceoff to this callback */
338 if (strcmp(cmd, "traceon") == 0) 340 if (strcmp(cmd, "traceon") == 0)
339 ops = &traceon_hook_ops; 341 ops = &traceon_probe_ops;
340 else 342 else
341 ops = &traceoff_hook_ops; 343 ops = &traceoff_probe_ops;
342 344
343 if (!param) 345 if (!param)
344 goto out_reg; 346 goto out_reg;
@@ -357,7 +359,7 @@ ftrace_trace_onoff_callback(char *glob, char *cmd, char *param, int enable)
357 return ret; 359 return ret;
358 360
359 out_reg: 361 out_reg:
360 ret = register_ftrace_function_hook(glob, ops, count); 362 ret = register_ftrace_function_probe(glob, ops, count);
361 363
362 return ret; 364 return ret;
363} 365}
@@ -397,6 +399,5 @@ static __init int init_function_trace(void)
397 init_func_cmd_traceon(); 399 init_func_cmd_traceon();
398 return register_tracer(&function_trace); 400 return register_tracer(&function_trace);
399} 401}
400
401device_initcall(init_function_trace); 402device_initcall(init_function_trace);
402 403