IP Library › Granted Patent US 11,379,290
Granted Patent B2
US 11,379,290 · App. 16/513,935 · Granted Jul 5, 2022

Prioritizing and parallelizing the capture of data for debugging computer programs

Inventors: Purvi Sharadchandra Patel (Rock Hill, SC); Scott B. Compton (Hyde Park, NY); Girija Varanasi (Poughkeepsie, NY); Ralph Sharpe (Newburgh, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F11/0781G06F9/3822G06F9/5038G06F11/362
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 11,379,290
App. No.
16/513,935
Filed
Jul 17, 2019
Granted
Jul 5, 2022
Kind
B2
Examiner
KO, CHAE M
Art Unit
2114
USPC
714/48
Abstract

Aspects of the invention include receiving a request to obtain data located in an address space to diagnose a computer error. It is determined whether a threshold number of resources are available to obtain the data. Based on determining that the threshold number of resources is available to obtain the data, a priority level of the computer program is assessed. A number of threads to assign to a workload to obtain the data from the address space is determined based at least in part on the priority level of the computer program. The determined number of threads are assigned to the workload. The workload is divided into a number of parallel units equal to the number of threads assigned to the workload. The parallel units of the workload are executed by the assigned threads to capture the data in the address space. The captured data is stored.

Claims (52)

1. A computer-implemented method comprising:

receiving a request to obtain data to diagnose a computer error, the data located in an address space assigned to a computer program;

estimating a size of the data;

determining whether a threshold number of resources are available to obtain the data, the threshold number based at least in part on the estimated size of the data; and

based on determining that the threshold number of resources are available to obtain the data:

assessing a priority level of the computer program;

determining a number of threads to assign to a workload to obtain the data from the address space, the number of threads based at least in part on the priority level of the computer program;

assigning the determined number of threads to the workload;

dividing the workload into a number of parallel units, the number of parallel units equal to the number of threads assigned to the workload;

executing, by the assigned threads, the parallel units of the workload to capture the data in the address space; and

storing the captured data,

wherein at least a portion of the data is located in a second address space of the computer and the determining is further based at least in part on a percentage of the data that is located in the second address space of the computer.

2. The computer-implemented method of claim 1 , wherein the executing of two or more of the parallel units of the workload overlaps in time.

3. The computer-implemented method of claim 1 , wherein the determining the number of threads to assign to a workload for obtaining the data is further based at least in part on the size of the data.

4. The computer-implemented method of claim 1 , wherein the second address space is assigned more threads than the address space based at least in part on the address space and the second address space having the same priority level, and on the second address space having a greater percentage of the data than the address space.

5. The computer-implemented method of claim 1 , wherein the address space is assigned more threads than a second address space assigned to a second computer program having a lower priority level than the address space.

6. The computer-implemented method of claim 1 , wherein the computer program is an application program.

7. The computer-implemented method of claim 1 , wherein the computer program is middleware.

8. A system comprising:

a memory having computer readable instructions; and

one or more processors for executing the computer readable instructions, the computer readable instructions controlling the one or more processors to perform operations comprising:

receiving a request to obtain data to diagnose a computer error, the data located in an address space assigned to a computer program;

estimating a size of the data;

determining whether a threshold number of resources are available to obtain the data, the threshold number based at least in part on the estimated size of the data; and

based on determining that the threshold number of resources are available to obtain the data:

assessing a priority level of the computer program;

determining a number of threads to assign to a workload to obtain the data from the address space, the number of threads based at least in part on the priority level of the computer program;

assigning the determined number of threads to the workload;

dividing the workload into a number of parallel units, the number of parallel units equal to the number of threads assigned to the workload;

executing, by the assigned threads, the parallel units of the workload to capture the data in the address space; and

storing the captured data,

wherein at least a portion of the data is located in a second address space of the computer and the determining is further based at least in part on a percentage of the data that is located in the second address space of the computer.

9. The system of claim 8 , wherein the executing of two or more of the parallel units of the workload overlaps in time.

10. The system of claim 8 , wherein the determining the number of threads to assign to a workload for obtaining the data is further based at least in part on the size of the data.

11. The system of claim 8 , wherein the second address space is assigned more threads than the address space based at least in part on the address space and the second address space having the same priority level, and on the second address space having a greater percentage of the data than the address space.

12. The system of claim 8 , wherein the address space is assigned more threads than a second address space assigned to a second computer program having a lower priority level than the address space.

13. The system of claim 8 , wherein the computer program is an application program.

14. The system of claim 8 , wherein the computer program is middleware.

15. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform operations comprising:

receiving a request to obtain data to diagnose a computer error, the data located in an address space assigned to a computer program;

estimating a size of the data;

determining whether a threshold number of resources are available to obtain the data, the threshold number based at least in part on the estimated size of the data; and

based on determining that the threshold number of resources are available to obtain the data:

assessing a priority level of the computer program;

determining a number of threads to assign to a workload to obtain the data from the address space, the number of threads based at least in part on the priority level of the computer program;

assigning the determined number of threads to the workload;

dividing the workload into a number of parallel units, the number of parallel units equal to the number of threads assigned to the workload;

executing, by the assigned threads, the parallel units of the workload to capture the data in the address space; and

storing the captured data,

wherein at least a portion of the data is located in a second address space of the computer and the determining is further based at least in part on a percentage of the data that is located in the second address space of the computer.

16. The computer program product of claim 15 , wherein the executing of two or more of the parallel units of the workload overlaps in time.

17. The computer program product of claim 15 , wherein the determining the number of threads to assign to a workload for obtaining the data is further based at least in part on the size of the data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2019
From: PATEL, PURVI SHARADCHANDRA; COMPTON, SCOTT B.; VARANASI, GIRIJA; SHARPE, RALPH
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049775/0368 →
Continuity (1)
Related Publication 20210019219A1 · Jan 21, 2021
Cited By (1)
US 12,572,405