Patent ID: 8464221

Claim:
A method implemented on a computing device by a processor configured to execute instructions that, when executed by the processor, direct the computing device to perform acts comprising: receiving a trace of system events from a system tracing infrastructure; receiving an indication of a thread of interest; automatically analyzing the trace by the processor to identify wait periods of the thread of interest within a time window; identifying a longest lock-related wait period from the wait periods of the thread of interest, wherein a lock-related wait period comprise a wait period when a call stack of the thread of interest includes a lock-related call; automatically generating a ready tree of thread status by acts comprising: identifying a first ready signal from the trace that ends the longest lock-related wait period for the thread of interest by readying the thread of interest to run, wherein the first ready signal identifies a parent thread; identifying a lock-related wait period for the parent thread that overlaps with the longest lock-related wait period for the thread of interest, wherein the lock-related wait period for the parent thread comprises a wait period when a call stack of the parent thread includes a lock-related call; identifying a second ready signal from the trace that ends the lock-related wait period of the parent thread, wherein the second ready signal identifies an ancestor thread; identifying a lock-related wait period for the ancestor thread that overlaps with the longest lock-related wait period for the thread of interest, wherein the lock-related wait period for the ancestor thread comprises a wait period when a call stack of the ancestor thread includes a lock-related call; and wherein nodes of the ready tree are run periods or wait periods of the threads and the nodes are linked by respective ready signals; and designating a path in the ready tree from the longest lock-related wait period for the thread of interest to a potential root cause of the wait as an anomalous path, wherein the designated path is a path such that an average wait period of the nodes in the designated path is longer than an average wait period of nodes in other paths in the ready tree; generating a visual display of the ready tree for display in a user interface, wherein nodes and links in the anomalous path are highlighted; and revealing a listing of call stack events for a node in the ready tree in response to receiving an indication of the node.