Re: cgroup trace events acquire sleeping locks
From: Peter Zijlstra <peterz@infradead.org>
Date: 2018-07-10 09:26:46
Also in:
lkml
From: Peter Zijlstra <peterz@infradead.org>
Date: 2018-07-10 09:26:46
Also in:
lkml
On Mon, Jul 09, 2018 at 04:30:10PM -0400, Steven Rostedt wrote:
On Mon, 9 Jul 2018 22:22:15 +0200 Sebastian Andrzej Siewior [off-list ref] wrote:quoted
On 2018-07-09 15:01:54 [-0400], Steven Rostedt wrote:quoted
quoted
which is the trace_cgroup_rmdir() trace event in cgroup_rmdir(). The trace event invokes cgroup_path() which acquires a spin_lock_t and this is invoked within a preempt_disable()ed section.Correct. And I wish no trace event took spin locks.is there an easy way to detect this? I mean instead hitting the trace event with debug enabled and doing a review of each of them.Hmm, good question. I could possibly make all the tracepoint code into its own section. And then look to see if any spin locks exist in them. That wouldn't be too trivial to implement though.
pick a bit from the preempt_count (say right above NMI_MASK) and set it inside a trace-event and add in_trace(). Then make lockdep explode when in_trace(). Or something along those lines.