IP Library Granted Patent US 8,495,430
Granted Patent B2
US 8,495,430 · App. 13/044,640 · Granted Jul 23, 2013

Generate diagnostic data for overdue thread in a data processing system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,495,430
App. No.
13/044,640
Granted
Jul 23, 2013
Kind
B2
Abstract

Disclosed is a computer implemented method, computer program product, and apparatus for generating diagnostic data for a thread. A service processor may begin by executing the computer usable program code to allocate a first thread to a monitoring function. The service processor determines if a second thread is running, wherein the second thread is associated with an operation. The service processor obtains an object pointer from a list of running threads, wherein the object pointer references a time data structure associated with the second thread, the time data structure comprising a maximum running time interval and a check time. The service processor calculates the check time as a maximum running time interval added to an initially sampled timestamp. The service processor determines if a current time exceeds the check time. In addition, the service processor generates an error log, responsive to a determination that the current time exceeds the check time.

Claims (35)

1. A computer implemented method to generate diagnostic data for a thread, the method comprising:

allocating a first thread to a monitoring function;

determining if a second thread is running, wherein the second thread is associated with a first operation wherein the first operation is a hardware-object-model operation;

obtaining a first object pointer from a list of running threads, wherein the first object pointer references a first time data structure associated with the second thread, the first time data structure comprising a first maximum running time interval and a first check time;

responsive to obtaining the first object pointer, determining whether the first maximum running time interval is finite;

responsive to a determination that the first maximum running time interval is finite, calculating the first check time as the first maximum running time interval added to an initially sampled timestamp;

determining if a first current time exceeds the first check time;

responsive to a determination that the first current time exceeds the first check time, generating an error log;

determining if a third thread is running, wherein the third thread is associated with a second operation;

obtaining a second object pointer from the list of running threads, wherein the second object pointer references a second time data structure associated with the third thread, the second time data structure comprising a second maximum running time interval and a second check time;

calculating the second check time as the second maximum running time interval added to the initially sampled timestamp;

determining if a second current time exceeds the second check time; and

responsive to a determination that the second current time exceeds the second check time, generating the error log.

2. The computer implemented method of claim 1 , further comprising: obtaining the initially sampled timestamp.

3. A computer program product for generating diagnostic data for a thread, the computer program product comprising: a tangible storage device having computer usable program code embodied therewith, the computer program product comprising:

computer usable program code configured to allocate a first thread to a monitoring function;

computer usable program code configured to determine if a second thread is running, wherein the second thread is associated with a first operation, wherein the first operation is a hardware-object-model operation;

computer usable program code configured to obtain a first object pointer from a list of running threads, wherein the first object pointer references a first time data structure associated with the second thread, the first time data structure comprising a first maximum running time interval and a first check time;

computer usable program code configured to determine whether the first maximum running time interval is finite, responsive to obtaining the first object pointer;

computer usable program code configured to calculate the first check time as the first maximum running time interval added to an initially sampled timestamp, responsive to a determination that the first maximum running time interval is finite;

computer usable program code configured to determine if a first current time exceeds the first check time;

computer usable program code configured to generate an error log, responsive to a determination that the first current time exceeds the first check time;

computer usable program code configured to determine if a third thread is running, wherein the third thread is associated with a second operation;

computer usable program code configured to obtain a second object pointer from the list of running threads, wherein the second object pointer references a second time data structure associated with the third thread, the second time data structure comprising a second maximum running time interval and a second check time;

computer usable program code configured to calculate the second check time as the second maximum running time interval added to the initially sampled timestamp;

computer usable program code configured to determine if a second current time exceeds the second check time; and

computer usable program code configured to generate the error log, responsive to a determination that the second current time exceeds the second check time.

4. The computer program product of claim 3 , further comprising: computer usable program code configured to obtain the initially sampled timestamp.

5. A data processing system for generating diagnostic data for a thread, the data processing system comprising:

a bus;

a storage device connected to the bus, wherein computer usable code is located in the storage device;

a communication unit connected to the bus; and

a processing unit connected to the bus, wherein the processing unit executes the computer usable program code to allocate a first thread to a monitoring function; determine if a second thread is running, wherein the second thread is associated with a first operation, wherein the first operation is a hardware-object-model operation; obtain a first object pointer from a list of running threads, wherein the first object pointer references a first time data structure associated with the second thread, the first time data structure comprising a first maximum running time interval and a first check time; determine whether the first maximum running time interval is finite, responsive to obtaining the first object pointer, responsive to a determination that the first maximum running time interval is finite; calculate the first check time as the first maximum running time interval added to an initially sampled timestamp; determine if a first current time exceeds the first check time; generate an error log, responsive to a determination that the first current time exceeds the first check time; determine if a third thread is running, wherein the third thread is associated with a second operation; obtain a second object pointer from the list of running threads, wherein the second object pointer references a second time data structure associated with the third thread, the second time data structure comprising a second maximum running time interval and a second check time; calculate the second check time as the second maximum running time interval added to the initially sampled timestamp; and determine if a second current time exceeds the second check time; and generate the error log, responsive to a determination that the second current time exceeds the second check time.

6. The data processing system of claim 5 , wherein the processing unit further executes computer usable code to obtain the initially sampled timestamp.

7. The data processing system of claim 5 , wherein the processing unit further executes computer usable code to send a signal to a calling thread to continue, responsive to a determination that the current time exceeds the check time.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE 1ST ASSIGNEE NAME 50% INTEREST PREVIOUSLY RECORDED AT REEL: 043418 FRAME: 0692. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 1, 2017
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: SERVICENOW, INC.; INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044348/0451 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2017
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: SERVICENOW, INC.
Reel/Frame 043418/0692 →