aboutsummaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/exported-sql-viewer.py
diff options
context:
space:
mode:
authorJason Baron <[email protected]>2020-04-06 20:11:23 -0700
committerLinus Torvalds <[email protected]>2020-04-07 10:43:44 -0700
commitefcdd350d1f8a98fa9fb5280e5af0a22e2059a26 (patch)
tree679dda708eeafad77d182b70e38f18e5152e513e /tools/perf/scripts/python/exported-sql-viewer.py
parent282144e04b9a88b53dc16dc46e47f7d810e0b63b (diff)
fs/epoll: make nesting accounting safe for -rt kernel
Davidlohr Bueso pointed out that when CONFIG_DEBUG_LOCK_ALLOC is set ep_poll_safewake() can take several non-raw spinlocks after disabling interrupts. Since a spinlock can block in the -rt kernel, we can't take a spinlock after disabling interrupts. So let's re-work how we determine the nesting level such that it plays nicely with the -rt kernel. Let's introduce a 'nests' field in struct eventpoll that records the current nesting level during ep_poll_callback(). Then, if we nest again we can find the previous struct eventpoll that we were called from and increase our count by 1. The 'nests' field is protected by ep->poll_wait.lock. I've also moved the visited field to reduce the size of struct eventpoll from 184 bytes to 176 bytes on x86_64 for !CONFIG_DEBUG_LOCK_ALLOC, which is typical for a production config. Reported-by: Davidlohr Bueso <[email protected]> Signed-off-by: Jason Baron <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Reviewed-by: Davidlohr Bueso <[email protected]> Cc: Roman Penyaev <[email protected]> Cc: Eric Wong <[email protected]> Cc: Al Viro <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/exported-sql-viewer.py')
0 files changed, 0 insertions, 0 deletions