summaryrefslogtreecommitdiffstats
path: root/kernel/power
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-08-04 14:50:00 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-08-04 14:50:00 -0400
commitb8c0aa46b3e86083721b57ed2eec6bd2c29ebfba (patch)
tree45e349bf8a14aa99279d323fdc515e849fd349f3 /kernel/power
parentc7ed326fa7cafb83ced5a8b02517a61672fe9e90 (diff)
parentdc6f03f26f570104a2bb03f9d1deb588026d7c75 (diff)
Merge tag 'trace-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull tracing updates from Steven Rostedt: "This pull request has a lot of work done. The main thing is the changes to the ftrace function callback infrastructure. It's introducing a way to allow different functions to call directly different trampolines instead of all calling the same "mcount" one. The only user of this for now is the function graph tracer, which always had a different trampoline, but the function tracer trampoline was called and did basically nothing, and then the function graph tracer trampoline was called. The difference now, is that the function graph tracer trampoline can be called directly if a function is only being traced by the function graph trampoline. If function tracing is also happening on the same function, the old way is still done. The accounting for this takes up more memory when function graph tracing is activated, as it needs to keep track of which functions it uses. I have a new way that wont take as much memory, but it's not ready yet for this merge window, and will have to wait for the next one. Another big change was the removal of the ftrace_start/stop() calls that were used by the suspend/resume code that stopped function tracing when entering into suspend and resume paths. The stop of ftrace was done because there was some function that would crash the system if one called smp_processor_id()! The stop/start was a big hammer to solve the issue at the time, which was when ftrace was first introduced into Linux. Now ftrace has better infrastructure to debug such issues, and I found the problem function and labeled it with "notrace" and function tracing can now safely be activated all the way down into the guts of suspend and resume Other changes include clean ups of uprobe code, clean up of the trace_seq() code, and other various small fixes and clean ups to ftrace and tracing" * tag 'trace-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (57 commits) ftrace: Add warning if tramp hash does not match nr_trampolines ftrace: Fix trampoline hash update check on rec->flags ring-buffer: Use rb_page_size() instead of open coded head_page size ftrace: Rename ftrace_ops field from trampolines to nr_trampolines tracing: Convert local function_graph functions to static ftrace: Do not copy old hash when resetting tracing: let user specify tracing_thresh after selecting function_graph ring-buffer: Always run per-cpu ring buffer resize with schedule_work_on() tracing: Remove function_trace_stop and HAVE_FUNCTION_TRACE_MCOUNT_TEST s390/ftrace: remove check of obsolete variable function_trace_stop arm64, ftrace: Remove check of obsolete variable function_trace_stop Blackfin: ftrace: Remove check of obsolete variable function_trace_stop metag: ftrace: Remove check of obsolete variable function_trace_stop microblaze: ftrace: Remove check of obsolete variable function_trace_stop MIPS: ftrace: Remove check of obsolete variable function_trace_stop parisc: ftrace: Remove check of obsolete variable function_trace_stop sh: ftrace: Remove check of obsolete variable function_trace_stop sparc64,ftrace: Remove check of obsolete variable function_trace_stop tile: ftrace: Remove check of obsolete variable function_trace_stop ftrace: x86: Remove check of obsolete variable function_trace_stop ...
Diffstat (limited to 'kernel/power')
-rw-r--r--kernel/power/hibernate.c6
-rw-r--r--kernel/power/suspend.c2
2 files changed, 0 insertions, 8 deletions
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
index fcc2611d3f14..a9dfa79b6bab 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -371,7 +371,6 @@ int hibernation_snapshot(int platform_mode)
371 } 371 }
372 372
373 suspend_console(); 373 suspend_console();
374 ftrace_stop();
375 pm_restrict_gfp_mask(); 374 pm_restrict_gfp_mask();
376 375
377 error = dpm_suspend(PMSG_FREEZE); 376 error = dpm_suspend(PMSG_FREEZE);
@@ -397,7 +396,6 @@ int hibernation_snapshot(int platform_mode)
397 if (error || !in_suspend) 396 if (error || !in_suspend)
398 pm_restore_gfp_mask(); 397 pm_restore_gfp_mask();
399 398
400 ftrace_start();
401 resume_console(); 399 resume_console();
402 dpm_complete(msg); 400 dpm_complete(msg);
403 401
@@ -500,7 +498,6 @@ int hibernation_restore(int platform_mode)
500 498
501 pm_prepare_console(); 499 pm_prepare_console();
502 suspend_console(); 500 suspend_console();
503 ftrace_stop();
504 pm_restrict_gfp_mask(); 501 pm_restrict_gfp_mask();
505 error = dpm_suspend_start(PMSG_QUIESCE); 502 error = dpm_suspend_start(PMSG_QUIESCE);
506 if (!error) { 503 if (!error) {
@@ -508,7 +505,6 @@ int hibernation_restore(int platform_mode)
508 dpm_resume_end(PMSG_RECOVER); 505 dpm_resume_end(PMSG_RECOVER);
509 } 506 }
510 pm_restore_gfp_mask(); 507 pm_restore_gfp_mask();
511 ftrace_start();
512 resume_console(); 508 resume_console();
513 pm_restore_console(); 509 pm_restore_console();
514 return error; 510 return error;
@@ -535,7 +531,6 @@ int hibernation_platform_enter(void)
535 531
536 entering_platform_hibernation = true; 532 entering_platform_hibernation = true;
537 suspend_console(); 533 suspend_console();
538 ftrace_stop();
539 error = dpm_suspend_start(PMSG_HIBERNATE); 534 error = dpm_suspend_start(PMSG_HIBERNATE);
540 if (error) { 535 if (error) {
541 if (hibernation_ops->recover) 536 if (hibernation_ops->recover)
@@ -579,7 +574,6 @@ int hibernation_platform_enter(void)
579 Resume_devices: 574 Resume_devices:
580 entering_platform_hibernation = false; 575 entering_platform_hibernation = false;
581 dpm_resume_end(PMSG_RESTORE); 576 dpm_resume_end(PMSG_RESTORE);
582 ftrace_start();
583 resume_console(); 577 resume_console();
584 578
585 Close: 579 Close:
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
index ed35a4790afe..4b736b4dfa96 100644
--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -248,7 +248,6 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
248 goto Platform_wake; 248 goto Platform_wake;
249 } 249 }
250 250
251 ftrace_stop();
252 error = disable_nonboot_cpus(); 251 error = disable_nonboot_cpus();
253 if (error || suspend_test(TEST_CPUS)) 252 if (error || suspend_test(TEST_CPUS))
254 goto Enable_cpus; 253 goto Enable_cpus;
@@ -275,7 +274,6 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
275 274
276 Enable_cpus: 275 Enable_cpus:
277 enable_nonboot_cpus(); 276 enable_nonboot_cpus();
278 ftrace_start();
279 277
280 Platform_wake: 278 Platform_wake:
281 if (need_suspend_ops(state) && suspend_ops->wake) 279 if (need_suspend_ops(state) && suspend_ops->wake)