Analyzing wait states in a data processing system

US9323578B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9323578-B2
Application numberUS-75457507-A
CountryUS
Kind codeB2
Filing dateMay 29, 2007
Priority dateJan 19, 2006
Publication dateApr 26, 2016
Grant dateApr 26, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A computer implemented method, apparatus, and computer usable program code for collecting information about threads. A thread entering a wait state is detected. Information is selectively obtained about a set of threads in the wait state using a policy to produce an action in response to the thread entering the wait state. A history containing the collected data may be saved and used to determine changes to patterns.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer implemented method for collecting information about threads, the computer implemented method comprising: detecting a thread entering a wait state; selectively obtaining information about a set of threads in the wait state using a policy in response to the thread entering the wait state, wherein the policy comprises a set of one or more rules that identify when information about the thread is to be collected; counting a number of times that the thread has gone into an idle state, wherein a count is formed, and wherein the count is stored in a node of a tree data structure; placing a unique identifier in the node; generating a trace record, wherein the trace record contains the unique identifier and the count; generating a report based on a combination of the trace record and the tree data structure; and analyzing the report to determine why a processor became idle during execution of code that included the thread. 2. The computer implemented method of claim 1 , wherein the policy specifies obtaining information about a thread of interest in the set of threads if a number of threads in the set of threads exceeds a threshold when the thread enters the wait state. 3. The computer implemented method of claim 1 , wherein the policy specifies obtaining information about the set of threads if a number of threads in the set of threads exceeds a threshold when the thread enters the wait state. 4. The computer implemented method of claim 1 , wherein the policy specifies obtaining information about the set of threads if the processor is in an idle state when the thread enters the wait state. 5. The computer implemented method of claim 1 , wherein the selectively obtaining step comprises: obtaining call stack information about a thread of interest in the set of threads in the wait state using the policy. 6. The computer implemented method of claim 5 , wherein the selectively obtaining step further comprises: obtaining a reason why the thread of interest in the set of threads entered the wait state using the policy. 7. The computer implemented method of claim 1 , wherein the selectively obtaining step comprises: obtaining a reason why a thread of interest in the set of threads entered the wait state using the policy. 8. The computer implemented method of claim 1 further comprising: analyzing the information about the set of threads to identify a pattern for a reason why threads are in the wait state. 9. A computer implemented method for collecting information about threads, the computer implemented method comprising: detecting a thread entering a wait state; responsive to detecting the thread entering the wait state, determining whether a number of threads in the wait state exceeds a threshold; responsive to a determination that the number of threads exceeds the threshold, sending a request to an interface of a virtual machine to obtain stack information of the number of threads; collecting the stack information for the number of threads in the wait state when the number of threads exceeds the threshold; and identifying a reason why the thread entered the wait state, wherein the identifying comprises: obtaining a first reason from an operating system in which the thread is executing and a second reason from a virtual machine in which the thread is executing; and selecting one of the first reason and the second reason to form the reason why the thread entered the wait state. 10. The computer implemented method of claim 9 , wherein the collecting step comprises: collecting the stack information for a thread of interest in the number of threads in the wait state if the number of threads exceeds the threshold. 11. The computer implemented method of claim 9 , wherein the collecting step is performed by a profiling program. 12. A computer program product comprising: a computer usable medium having computer usable program code for collecting information about threads stored thereon for execution by one or more processors, the computer program product comprising: computer usable program code for detecting a thread entering a wait state; computer usable program code for selectively obtaining information about a set of threads in the wait state using a policy in response to the thread entering the wait state, wherein the policy comprises a set of one or more rules that identify when information about the thread is to be collected: computer usable program code for counting a number of times that the thread has gone into an idle state, wherein a count is formed, and wherein the count is stored in a node of a tree data structure; computer usable program code for placing a unique identifier in the node; computer usable program code for generating a trace record, wherein the trace record contains the unique identifier and the count; computer usable program code for generating a report based on a combination of the trace record and the tree data structure; and computer usable program code for analyzing the report to determine why a processor became idle during execution of code that included the thread. 13. The computer program product of claim 12 , wherein the policy specifies obtaining information about a thread of interest in the set of threads if a number of threads in the set of threads exceeds a threshold when the thread enters the wait state. 14. The computer program product of claim 12 , wherein the policy specifies obtaining information about the set of threads if a number of threads in the set of threads exceeds a threshold when the thread enters the wait state. 15. The computer program product of claim 12 , wherein the policy specifies obtaining information about the set of threads if the processor is in an idle state when the thread enters the wait state. 16. The computer program product of claim 12 , wherein the computer usable program code for selectively obtaining information about a set of threads in the wait state using a policy in response to the thread entering the wait state comprises: computer usable program code for obtaining call stack information about a thread of interest in the set of threads in the wait state using the policy. 17. The computer program product of claim 16 , wherein the computer usable program code for selectively obtaining information about a set of threads in the wait state using a policy in response to the thread entering the wait state further comprises: computer usable program code for obtaining a reason why the thread of interest in the set of threads entered the wait state using the policy. 18. The computer program product of claim 12 , wherein the computer usable program code for selectively obtaining information about a set of threads in the wait state using a policy in response to the thread entering the wait state comprises: computer usable program code for obtaining a reason why a thread of interest in the set of threads entered the wait state using the policy. 19. The computer program product of claim 12 further comprising: computer usable program code for analyzing the information about the set of threads to identify a pattern for a reason why threads are in the wait state. 20. A data processing system comprising: a bus; a communications unit connected to the bus; a storage device connected to the bus, wherein the storage device includes computer usable program code; and a processor unit connected to the bus, wherein the processor unit executes the computer usable program to: detect a thread entering a

Assignees

Inventors

Classifications

  • by runtime analysis (performance monitoring G06F11/3466) · CPC title

  • G06F9/505Primary

    considering the load · CPC title

  • Monitor · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9323578B2 cover?
A computer implemented method, apparatus, and computer usable program code for collecting information about threads. A thread entering a wait state is detected. Information is selectively obtained about a set of threads in the wait state using a policy to produce an action in response to the thread entering the wait state. A history containing the collected data may be saved and used to determi…
Who is the assignee on this patent?
Dewitt Jr Jimmie Earl, Hussain Riaz Y, Levine Frank Eliot, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F9/505. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 26 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).