IP Library Granted Patent US 7,895,581
Granted Patent B2
US 7,895,581 · App. 11/698,526 · Granted Feb 22, 2011

Profiling collector for computer system

Assignee: Hewlett-Packard Development Company, L.P.
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 7,895,581
App. No.
11/698,526
Granted
Feb 22, 2011
Kind
B2
Abstract

In one embodiment a computer system comprises one or more processors and a memory module communicatively connected to the one or more processors. The memory module comprises logic instructions which, when executed on the one or more processors configure the one or more processors to receive an interrupt in an execution thread of a process executing at an application layer of an operating system, intercept the interrupt in a profiling collector module invoked directly from a raw machine state, execute a profiling collection process, and return control from the interrupt to the execution thread when the profiling collection process is complete.

Claims (46)

1. A method to collect profile samples in a computer system, comprising:

receiving an interrupt of an execution thread of a process executing at an application layer of the computer system;

intercepting the interrupt in a profiling collector module executed in the computer system;

determining, by the profiling collector module, whether the interrupt is related to performing profiling;

in response to determining that the interrupt is not related to performing profiling, invoking an in-kernel interrupt handling mechanism at a kernel level of the computer system to handle the interrupt;

in response to determining that the interrupt is related to performing profiling, the profiling collector module executing a profiling collection process to collect the profile samples while bypassing the in-kernel interrupt handling mechanism; and

returning control from the interrupt to the execution thread when the profiling collection process is complete.

2. The method of claim 1 , wherein the profiling collector module is stored in memory on a processor.

3. The method of claim 1 , wherein the profiling collection process interacts directly with physical memory addresses.

4. The method of claim 1 , wherein executing the profiling collection process while bypassing the in-kernel interrupt handling mechanism in response to determining that the interrupt is related to performing profiling comprises executing the profiling collection process in response to determining that the interrupt is related to performing profiling and that a memory space addressed by the interrupt is valid, the method further comprising:

in response to determining that the interrupt is related to performing profiling but that the memory space addressed by the interrupt is invalid, invoking the in-kernel interrupt handling mechanism to perform collecting of the profile samples.

5. The method of claim 1 , wherein intercepting the interrupt in the profiling collector module comprises redirecting an interrupt vector corresponding to the interrupt to the profiling collector module.

6. The method of claim 1 , further comprising:

configuring the profiling collector module to be able to invoke the in-kernel interrupt handling mechanism.

7. The method of claim 1 , further comprising providing the profiling collector module in an interrupt vector table.

8. The method of claim 1 , further comprising:

after the profiling collector module has executed the profiling collection process to collect the profile samples while bypassing the in-kernel interrupt handling mechanism, the profiling collector module invoking the in-kernel interrupt handling mechanism to perform a task.

9. A computer system, comprising:

one or more processors;

a memory module communicatively connected to the one or more processors and comprising logic instructions which, when executed on the one or more processors configure the one or more processors to:

receive an interrupt of an execution thread of a process executing at an application layer of the computer system;

intercept the interrupt in a profiling collector module executed in the computer system;

determine, by the profiling collector module, whether the interrupt is related to performing profiling;

in response to determining that the interrupt is not related to performing profiling, invoke an in-kernel interrupt handling mechanism at a kernel level of the computer system to handle the interrupt;

in response to determining that the interrupt is related to performing profiling and that a first condition associated with the interrupt is satisfied, cause the profiling collector module to execute a profiling collection process to collect profile samples regarding performance parameters of the computer system without using the in-kernel interrupt handling mechanism; and

return control from the interrupt to the execution thread when the profiling collection process is complete.

10. The computer system of claim 9 , further comprising:

an interrupt vector register; and

logic instructions which, when executed on the one or more processors configure the one or more processors to perform one or more read destructive operations of the interrupt vector register.

11. The computer system of claim 9 , further comprising logic instructions which, when executed on the one or more processors configure the one or more processors to cause the profiling collector module to interact directly with physical memory addresses.

12. The computer system of claim 9 , wherein the logic instructions when executed on the one or more processors configure the one or more processors to further:

in response to determining that the interrupt is related to performing profiling but that the first condition is not satisfied, cause the profiling collector module to invoke the in-kernel interrupt handling mechanism to perform collecting of the profile samples.

13. The computer system of claim 12 , wherein the first condition comprises a memory space addressed by the interrupt being valid.

14. The computer system of claim 9 , wherein interception of the interrupt in the profiling collector module is performed by redirecting an interrupt vector corresponding to the interrupt to the profiling collector module.

15. The computer system of claim 9 , wherein the profiling collector module is configured to be able to invoke the in-kernel interrupt handling mechanism under one or more conditions.

16. A computer program product stored on a computer-readable storage medium comprising logic instructions which, when executed on one or more processors, configure the one or more processors to:

receive an interrupt of an execution thread of a process executing at an application layer of a computer system;

intercept the interrupt in a profiling collector module executed in the computer system;

determine whether the interrupt is related to performing profiling;

in response to determining that the interrupt is not related to performing profiling, invoke an in-kernel interrupt handling mechanism at a kernel level of the computer system to handle the interrupt;

in response to determining that the interrupt is related to performing profiling and that a first condition associated with the interrupt is satisfied, cause the profiling collector module to execute a profiling collection process to collect profile samples regarding performance parameters of the computer system without using the in-kernel interrupt handling mechanism; and

return control from the interrupt to the execution thread when the profiling collection process is complete.

17. The computer program product of claim 16 , further comprising logic instructions which, when executed on the one or more processors configure the one or more processors to perform one or more read destructive operations of an interrupt vector register.

18. The computer program product of claim 16 , wherein the logic instructions when executed on the one or more processors configure the one or more processors to further:

in response to determining that the interrupt is related to performing profiling but that the first condition is not satisfied, cause the profiling collector module to invoke the in-kernel interrupt handling mechanism to perform collecting of the profile samples.

19. The computer program product of claim 18 , wherein the first condition comprises a memory space addressed by the interrupt being valid.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 058897/0262 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2007
From: LAFRANCE-LINDEN, DAVID
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 018851/0070 →
Continuity (1)
Related Publication 20080183930A1 · Jul 31, 2008