Re: [PATCH tip/core/rcu 03/28] locktorture: Track time of last ->writeunlock()

Davidlohr Bueso
2020-11-06T07:18:42Z

On Thu, 05 Nov 2020, paulmck@kernel.org wrote:

>From: "Paul E. McKenney" <paulmck@kernel.org>
>
>This commit adds a last_lock_release variable that tracks the time of
>the last ->writeunlock() call, which allows easier diagnosing of lock
>hangs when using a kernel debugger.

This makes sense to have.

Acked-by: Davidlohr Bueso <dbueso@suse.de>

>
>Cc: Davidlohr Bueso <dave@stgolabs.net>
>Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
>---
> kernel/locking/locktorture.c | 2 ++
> 1 file changed, 2 insertions(+)
>
>diff --git a/kernel/locking/locktorture.c b/kernel/locking/locktorture.c
>index 62d215b..316531d 100644
>--- a/kernel/locking/locktorture.c
>+++ b/kernel/locking/locktorture.c
>@@ -60,6 +60,7 @@ static struct task_struct **reader_tasks;
>
> static bool lock_is_write_held;
> static bool lock_is_read_held;
>+static unsigned long last_lock_release;
>
> struct lock_stress_stats {
> long n_lock_fail;
>@@ -632,6 +633,7 @@ static int lock_torture_writer(void *arg)
> lwsp->n_lock_acquired++;
> cxt.cur_ops->write_delay(&rand);
> lock_is_write_held = false;
>+ WRITE_ONCE(last_lock_release, jiffies);
> cxt.cur_ops->writeunlock();
>
> stutter_wait("lock_torture_writer");
>--
>2.9.5
>