Analysis of thread synchronization events
First Claim
1. A method which may be used by a developer to help analyze thread synchronization events, the method comprising the steps of:
- receiving the following data for each of a plurality of thread context switches;
switched-in thread identity, switched-out thread identity, switched-out thread state, at least one thread call stack;
determining with the data that a particular switched-out thread was synchronization-blocked; and
outputting a thread synchronization event analysis listing the particular switched-out thread as a blocked thread and listing an indication of a blocking API based on the particular thread call stack and a collection of blocking API identifications, “
API”
being an acronym for Application Program Interface,wherein the thread synchronization event analysis configures a display with a visible link between (i) an icon representing an unblocking event within a first thread timeline and (ii) a second thread timeline representing a thread which is unblocked by the event, and wherein the first and second timelines are separated in the display by at least one other timeline.
2 Assignments
0 Petitions
Accused Products
Abstract
Thread blocking synchronization event analysis software uses kernel context switch data and thread unblocking data to form a visualization of thread synchronization behavior. The visualization provides interactive access to source code responsible for thread blocking, identifies blocking threads and blocked threads, summarizes execution delays due to synchronization and lists corresponding APIs and objects, correlates thread synchronization events with application program phases, and otherwise provides information associated with thread synchronization. The visualization may operate within an integrated development environment.
-
Citations
20 Claims
-
1. A method which may be used by a developer to help analyze thread synchronization events, the method comprising the steps of:
-
receiving the following data for each of a plurality of thread context switches;
switched-in thread identity, switched-out thread identity, switched-out thread state, at least one thread call stack;determining with the data that a particular switched-out thread was synchronization-blocked; and outputting a thread synchronization event analysis listing the particular switched-out thread as a blocked thread and listing an indication of a blocking API based on the particular thread call stack and a collection of blocking API identifications, “
API”
being an acronym for Application Program Interface,wherein the thread synchronization event analysis configures a display with a visible link between (i) an icon representing an unblocking event within a first thread timeline and (ii) a second thread timeline representing a thread which is unblocked by the event, and wherein the first and second timelines are separated in the display by at least one other timeline. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer system configured to assist analysis of thread synchronization events, the system comprising:
-
a memory; a logical processor in operable communication with the memory; a display in operable communication with the memory and the processor; thread context switch data produced by a kernel thread scheduler; thread unblocking data; and software which receives the following data for each of a plurality of thread context switches;
switched-in thread identity, switched-out thread identity, switched-out thread state, at least one thread call stack;determines with the data that a particular switched-out thread was synchronization-blocked; and
outputs a thread synchronization event analysis listing the particular switched-out thread as a blocked thread and listing an indication of a blocking API based on the particular thread call stack and a collection of blocking API identifications,a visualization of the thread context switch data and the thread unblocking data which configures the display and shows thread blocking and thread unblocking synchronization events, the visualization containing a visible link between (i) an icon representing an unblocking event within a first thread timeline and (ii) a second thread timeline representing a thread which is unblocked by the event, the visualization correlating thread synchronization event occurrence times with an instrumentation of an application program. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 20)
-
-
16. A storage medium configured with computer data and computer instructions for a method which may be used by a developer to help analyze thread synchronization events, the method comprising the steps of:
-
receiving the following data for each of a plurality of thread context switches;
switched-in thread identity, switched-out thread identity, switched-out thread state, at least one thread call stack, context switch time of occurrence;receiving the following data for each of a plurality of kernel thread unblocking synchronization events;
unblocked thread identity, unblocking thread identity, at least one thread call stack, unblocking synchronization event time of occurrence;determining with the data that a particular thread was synchronization-blocked and subsequently synchronization-unblocked; and outputting a thread blocking synchronization event analysis based on the data, the thread blocking synchronization analysis identifying an inter-thread synchronization dependency, namely, identifying for two threads which of the threads unblocked the other thread, the thread blocking synchronization analysis containing a link between (i) an unblocking event within a first thread timeline and (ii) a second thread timeline representing a thread which is unblocked by the event. - View Dependent Claims (17, 18, 19)
-
Specification