[RFC PATCH 3/3] lockdep: Briefly comment current->hardirq_threadable usecases

From: Frederic Weisbecker
Date: Sun Mar 22 2020 - 23:32:27 EST


We have yet to find a proper comment for rcu_iw_handler() though.

Signed-off-by: Frederic Weisbecker <frederic@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Cc: Paul E. McKenney <paulmck@xxxxxxxxxx>
---
kernel/time/posix-cpu-timers.c | 1 +
kernel/time/tick-sched.c | 4 ++++
2 files changed, 5 insertions(+)

diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
index d29a06d60206..85902d756e21 100644
--- a/kernel/time/posix-cpu-timers.c
+++ b/kernel/time/posix-cpu-timers.c
@@ -1126,6 +1126,7 @@ void run_posix_cpu_timers(void)
if (!fastpath_timer_check(tsk))
return;

+ /* Should be offloaded to task_work at some future */
trace_hardirq_threadable();
if (!lock_task_sighand(tsk, &flags)) {
trace_hardirq_unthreadable();
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 3e2dc9b8858c..d469972673e4 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -245,6 +245,10 @@ static void nohz_full_kick_func(struct irq_work *work)

static DEFINE_PER_CPU(struct irq_work, nohz_full_kick_work) = {
.func = nohz_full_kick_func,
+ /*
+ * Must stay in hardirq. Threading would mess up with tick
+ * dependencies.
+ */
.flags = ATOMIC_INIT(IRQ_WORK_HARD_IRQ),
};

--
2.25.0