Hello Adar Dembo, Kudu Jenkins, I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/4626 to look at the new patch set (#3). Change subject: kernel_stack_watchdog: avoid blocking threads starting ...................................................................... kernel_stack_watchdog: avoid blocking threads starting I've noticed recently that threads start particularly slowly in TSAN. One culprit which seems to exacerbate this issue is the following: - TSAN defers signal-handling in many cases, which causes the stack watchdog to be slow at collecting stacks. - The stack watchdog was holding a lock while collecting stacks from stuck threads. - This lock blocked other threads from starting, since every new thread needs to register itself with the watchdog. The fix here is to make the synchronization more fine-grained: we only hold this lock long enough to make a copy of the current map of registered threads. However, it's still important to prevent these threads from _exiting_ while we are looking at their TLS. So, this patch adds a new 'unregister_lock_' which is used to prevent such exits. Since 'lock_' is now held for only short periods of time, I switched it out for a spinlock instead of a mutex. Additionally, the lock protecting the log collector was also separated out. No new tests are included, but the watchdog is already covered and runs as part of nearly every test. Change-Id: I7af85ade6ec9050843ec5b146d26c2549c503d8f --- M src/kudu/util/kernel_stack_watchdog.cc M src/kudu/util/kernel_stack_watchdog.h 2 files changed, 60 insertions(+), 32 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/26/4626/3 -- To view, visit http://gerrit.cloudera.org:8080/4626 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I7af85ade6ec9050843ec5b146d26c2549c503d8f Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd Lipcon <t...@apache.org> Gerrit-Reviewer: Adar Dembo <a...@cloudera.com> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon <t...@apache.org>