Thread (6 messages) 6 messages, 3 authors, 2018-07-10

Re: cgroup trace events acquire sleeping locks

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help