IP Library › Granted Patent US 8,776,061
Granted Patent B2
US 8,776,061 · App. 12/969,692 · Granted Jul 8, 2014

Real-time distributed monitoring of local and global processor resource allocations and deallocations

Inventors: Oleg Levin (Acton, MA); Sonjeev Jahagirdar (Cambridge, MA); Moshe Emanuel Matsa (Cambridge, MA)
Assignee: International Business Machines Corporation
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,776,061
App. No.
12/969,692
Granted
Jul 8, 2014
Kind
B2
Abstract

Processes, devices, and articles of manufacture having provisions to monitor and track multi-core Central Processor Unit resource allocation and deallocation in real-time are provided. The allocation and deallocation may be tracked by two counters with the first counter incrementing up or down depending upon the allocation or deallocation at hand, and with the second counter being updated when the first counter value meets or exceeds a threshold value.

Claims (66)

1. A computing device comprising:

a bus;

a processor in communication with the bus;

a first processor resource in communication with the bus;

a second processor resource in communication with the bus; and,

a computer readable storage medium in communication with the bus, the computer readable storage medium storing instructions, which when executed, configuring the processor to monitor allocations and deallocations of the first processor resource and the second processor resource, wherein monitoring the allocations and the deallocations of the first processor resource and the second processor resource comprises:

tracking requests to allocate or deallocate the first processor resource and the second processor resource;

for a requested allocation of the first processor resource, incrementing a count of a first resource counter up with an increment reflecting an extent of the allocation, the first resource counter configured to indicate negative values;

for a requested deallocation of the first processor resource, incrementing the count of the first resource counter down with an increment reflecting the extent of the deallocation;

determining, after incrementing the count of the first resource counter up or down, whether the absolute value of the count of the first resource counter meets or exceeds a first resource counter threshold;

upon determining that the absolute value of the count of the first resource counter meets or exceeds the first resource counter threshold, updating a count of a second resource counter up or down with an increment reflecting the value of the first resource counter count and resetting the count of the first resource counter;

determining, based at least in part on a comparison of the value of the count of the second resource counter with a quality of service limit, whether a quality of service criteria can be satisfied if an additional requested allocation of the first or second processor resource is granted;

upon determining that the quality of service criteria can be satisfied if the additional requested allocation of the first or second processor resource is granted, granting the request to allocate the first or second processor resource; and

upon determining that a difference between the first resource counter threshold and a second threshold exceeds a predetermined value, updating the first resource counter threshold with a revised first resource counter threshold for use in subsequent monitoring.

2. The computing device of claim 1 wherein monitoring the allocation and the deallocation of the first processor resource and the second processor resource further comprises: after resetting the count of the first resource counter, updating the first resource counter threshold.

3. The computing device of claim 1 wherein the processor being configured is a multi-core processor and wherein the first processor resource is cache and the second processor resource is main memory.

4. The computing device of claim 1 wherein the first resource counter is reset to zero.

5. The computing device of claim 1 wherein the processor being configured is a multi-core processor and wherein requests to allocate or deallocate the first processor resource and the second processor resource are linked to the initiation or conclusion of process threads running on the multi-core processor.

6. The computing device of claim 1 wherein

the first processor resource is memory,

the second processor resource is memory,

requests to allocate or deallocate the first processor resource and the second processor resource are attributable to thread allocation or deallocation in the processor, and

the second counter is a global counter tracking every allocation or deallocation of the first processor resource and the second processor resource.

7. An article of manufacture comprising:

a non-transitory computer readable storage medium storing instructions, which when executed, configures a processor to monitor allocations and deallocations of a first processor resource,

wherein monitoring the allocations and the deallocations of the first processor resource comprises:

tracking requests to allocate or deallocate the first processor resource;

for a requested allocation of the first processor resource,

incrementing a count of a first resource counter up with an increment reflecting an extent of the allocation, the first resource counter configured to indicate negative values;

for a requested deallocation of the first processor resource, incrementing the count of a first resource counter down with an increment reflecting the extent of the deallocation;

determining, after incrementing the count of the first resource counter up or down, whether the absolute value of the count of the first resource counter meets or exceeds a first resource counter threshold;

upon determining that the absolute value of the count of the first resource counter meets or exceeds the first resource counter threshold, updating a count of a second resource counter up or down with an increment reflecting the value of the first resource counter count and resetting the count of the first resource counter;

determining, based at least in part on a comparison of the value of the count of the second resource counter with a quality of service limit, whether a quality of service criteria can be satisfied if an additional requested allocation of the first processor resource is granted;

upon determining that the quality of service criteria can be satisfied if the additional requested allocation of the first processor resource is granted, granting the request to allocate the first processor resource; and

upon determining that a difference between the first resource counter threshold and a second threshold exceeds a predetermined value, updating the first resource counter threshold with a revised first resource counter threshold for use in subsequent monitoring.

8. The article of manufacture of claim 7 wherein monitoring the allocation and the deallocation of the first processor resource further comprises:

after resetting the count of the first resource counter, updating the value of the count of the first resource counter threshold.

9. The article of manufacture of claim 7 wherein the processor being configured is a multi-core processor and wherein the first processor resource is L2 cache.

10. The article of manufacture of claim 7 wherein the processor being configured is a multi-core processor and wherein requests to allocate or deallocate the first processor resource are linked to the initiation or conclusion of process threads running on the multi-core processor.

11. The article of manufacture of claim 7 wherein the first processor resource is thread allocated memory,

requests to allocate or deallocate the first processor resources are attributable to each thread allocation or deallocation in the processor, and

the second counter is a global counter tracking every allocation or deallocation of the first processor resource.

12. A computing device comprising:

a processor; and

a memory,

the memory storing instructions, which when executed, configuring the processor to monitor allocations and deallocations of a first processor resource and a second processor resource, wherein monitoring the allocations and the deallocations of the first processor resource and the second processor resource comprises:

tracking requests to allocate or deallocate the first processor resource:

for a requested allocation of the first processor resource, incrementing a count of a first local resource counter up with an increment reflecting the extent of the allocation, the first local resource counter configured to indicate a negative value;

for a requested deallocation of the first processor resource, incrementing the count of the first local resource counter down with an increment reflecting the extent of the deallocation, the first local resource counter reflecting a negative value when the extent of the requested deallocation is larger than the existing count of the local resource counter before the deallocation;

determining, after incrementing the count of the first local resource counter up or down, whether the absolute value of the count of the first local resource counter meets or exceeds a first local resource counter threshold;

upon determining that the absolute value of the count of the first local resource counter meets or exceeds the first local resource counter threshold, updating a count of a global counter up or down with an increment reflecting the value of the first local resource counter count and resetting the count of the first local resource counter;

determining, based at least in part on a comparison of the value of the count of the global counter with a quality of service limit, whether a quality of service criteria can be satisfied if an additional requested allocation of the first or second processor resource is granted;

upon determining that the quality of service criteria can be satisfied if the additional requested allocation of the first or second processor resource is granted, granting the request to allocate the first or second processor resource; and

upon determining that a difference between the first local resource counter threshold and a second threshold exceeds a predetermined value, updating the first local resource counter threshold with a revised first local resource counter threshold for use in subsequent monitoring.

13. The computing device of claim 12 wherein monitoring the allocation and the deallocation of the first processor resource and the second processor resource further comprises:

for requested allocation of the second processor resource, incrementing a count of a second local resource counter up with an increment reflecting the extent of the allocation, the second local resource counter configured to indicate a negative value; and

for a requested deallocation of the second processor resource, incrementing a count of the second local resource counter down with an increment reflecting the extent of the deallocation, the second local counter reflecting a negative value when the extent of the requested deallocation is larger than the existing count of the local resource counter before the deallocation.

14. The computing device of claim 13 wherein monitoring the allocation and the deallocation of the first processor resource and the second processor resource further comprises:

determining, after incrementing the count of the second local resource counter up or down, whether the absolute value of the count of the second local resource counter meets or exceeds a second local resource counter threshold;

upon determining that the absolute value of the count of the second local resource counter is determined to meet or exceed the second local resource counter threshold, updating the count of the global counter up or down with an increment reflecting the value of the second local resource counter count and resetting the count of the second local resource counter;

determining, based at least in part on a comparison of the value of the count of the global resource counter, with a quality of service limit, whether a quality of service criteria can be satisfied if an additional requested allocation of the first or second processor resource is granted; and

upon determining that the quality of service criteria can be satisfied if the additional requested allocation of the first or second processor resource is granted, granting the request to allocate the first or second processor resource.

15. The computing device of claim 12 wherein monitoring the allocation and the deallocation of the first processor resource and the second processor resource further comprises:

determining the revised first local resource counter threshold using the count of the global counter, a total amount of memory available to the processor, and a number of threads running on the processor.

16. The computing device of claim 12 wherein the memory stores further instructions, which when executed, configure the processor to determine whether or not to begin executing a thread depending on the values of the first or second local resource counters and the value of the global counter.

17. The computing device of claim 12 wherein the memory stores further instructions, which when executed, configure the processor to change the first local counter threshold to reduce the number of subsequent updates to the global resource counter.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2010
From: LEVIN, OLEG, MR.; JAHAGIRDAR, SONJEEV, MR.; MATSA, MOSHE E., MR.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 025509/0225 →
Continuity (1)
Related Publication 20120159502A1 · Jun 21, 2012