diff options
author | Paul E. McKenney <paulmck@kernel.org> | 2023-07-20 00:50:07 +0200 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2023-08-15 00:00:37 +0200 |
commit | 67d5404d274376890d6d095a10e6565854918f8e (patch) | |
tree | 6b849719a7d64178d174c1604fee9b87b6fa35e2 /kernel/torture.c | |
parent | torture: Support randomized shuffling for proxy exec testing (diff) | |
download | linux-67d5404d274376890d6d095a10e6565854918f8e.tar.xz linux-67d5404d274376890d6d095a10e6565854918f8e.zip |
torture: Add a kthread-creation callback to _torture_create_kthread()
This commit adds a kthread-creation callback to the
_torture_create_kthread() function, which allows callers of a new
torture_create_kthread_cb() macro to specify a function to be invoked
after the kthread is created but before it is awakened for the first time.
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
Cc: Josh Triplett <josh@joshtriplett.org>
Cc: Juri Lelli <juri.lelli@redhat.com>
Cc: Valentin Schneider <vschneid@redhat.com>
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
Cc: kernel-team@android.com
Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Acked-by: John Stultz <jstultz@google.com>
Diffstat (limited to 'kernel/torture.c')
-rw-r--r-- | kernel/torture.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/torture.c b/kernel/torture.c index 8be83fdc6be1..b88a1a86d9da 100644 --- a/kernel/torture.c +++ b/kernel/torture.c @@ -932,7 +932,7 @@ EXPORT_SYMBOL_GPL(torture_kthread_stopping); * it starts, you will need to open-code your own. */ int _torture_create_kthread(int (*fn)(void *arg), void *arg, char *s, char *m, - char *f, struct task_struct **tp) + char *f, struct task_struct **tp, void (*cbf)(struct task_struct *tp)) { int ret = 0; @@ -944,6 +944,10 @@ int _torture_create_kthread(int (*fn)(void *arg), void *arg, char *s, char *m, *tp = NULL; return ret; } + + if (cbf) + cbf(*tp); + wake_up_process(*tp); // Process is sleeping, so ordering provided. torture_shuffle_task_register(*tp); return ret; |