The following commit has been merged into the core/rcu branch of tip:

Commit-ID:     2102ad290af06119ccfb56ddc3a0e5011a91537e
Gitweb:        
https://git.kernel.org/tip/2102ad290af06119ccfb56ddc3a0e5011a91537e
Author:        Paul E. McKenney <[email protected]>
AuthorDate:    Tue, 16 Jun 2020 15:38:24 -07:00
Committer:     Paul E. McKenney <[email protected]>
CommitterDate: Mon, 29 Jun 2020 12:01:45 -07:00

torture: Dump ftrace at shutdown only if requested

If there is a large number of torture tests running concurrently,
all of which are dumping large ftrace buffers at shutdown time, the
resulting dumping can take a very long time, particularly on systems
with rotating-rust storage.  This commit therefore adds a default-off
torture.ftrace_dump_at_shutdown module parameter that enables
shutdown-time ftrace-buffer dumping.

Signed-off-by: Paul E. McKenney <[email protected]>
---
 Documentation/admin-guide/kernel-parameters.txt | 7 +++++++
 kernel/torture.c                                | 6 +++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/Documentation/admin-guide/kernel-parameters.txt 
b/Documentation/admin-guide/kernel-parameters.txt
index a0dcc92..9f11ff8 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -5096,6 +5096,13 @@
                        Prevent the CPU-hotplug component of torturing
                        until after init has spawned.
 
+       torture.ftrace_dump_at_shutdown= [KNL]
+                       Dump the ftrace buffer at torture-test shutdown,
+                       even if there were no errors.  This can be a
+                       very costly operation when many torture tests
+                       are running concurrently, especially on systems
+                       with rotating-rust storage.
+
        tp720=          [HW,PS2]
 
        tpm_suspend_pcr=[HW,TPM]
diff --git a/kernel/torture.c b/kernel/torture.c
index a1a4148..1061492 100644
--- a/kernel/torture.c
+++ b/kernel/torture.c
@@ -45,6 +45,9 @@ MODULE_AUTHOR("Paul E. McKenney <[email protected]>");
 static bool disable_onoff_at_boot;
 module_param(disable_onoff_at_boot, bool, 0444);
 
+static bool ftrace_dump_at_shutdown;
+module_param(ftrace_dump_at_shutdown, bool, 0444);
+
 static char *torture_type;
 static int verbose;
 
@@ -527,7 +530,8 @@ static int torture_shutdown(void *arg)
                torture_shutdown_hook();
        else
                VERBOSE_TOROUT_STRING("No torture_shutdown_hook(), skipping.");
-       rcu_ftrace_dump(DUMP_ALL);
+       if (ftrace_dump_at_shutdown)
+               rcu_ftrace_dump(DUMP_ALL);
        kernel_power_off();     /* Shut down the system. */
        return 0;
 }

Reply via email to