Obtaining application performance data for different performance events via a unified channel

US10691571B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10691571-B2
Application numberUS-201715602480-A
CountryUS
Kind codeB2
Filing dateMay 23, 2017
Priority dateDec 4, 2009
Publication dateJun 23, 2020
Grant dateJun 23, 2020

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 system for obtaining performance data for different performance events includes a first application monitoring performance of a second application executing on a computing system. The first application identifies the type of event to be measured with respect to the second application, issues a first system call identifying the type of event, receives an identifier corresponding to the event type, and causes the second application to begin execution. After the execution of the second application is completed, the first application issues a second system call including the identifier corresponding to the event type, and receives a value of a hardware counter corresponding to the event type from an operating system.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: identifying, by a first application executed by a processing device of a computing system, an event type of event to be measured with respect to performance of a second application being monitored; issuing, by the first application, a first virtual file system call comprising the identified event type as a parameter, wherein the identified event type corresponds to a cumulative counter, and wherein the cumulative counter is a data field to aggregate a value of a first hardware counter for a first processor, and a value of a second hardware counter for a second processor; subsequent to receiving a file descriptor of the cumulative counter of the identified event type, causing, by the first application, the second application to begin the execution, wherein the first hardware counter is to perform measurements for the first processor during the execution of the second application based on performance characteristics of the second application for the identified event type, and the second hardware counter is to perform measurements for the second processor during the execution of the second application based on the performance characteristics of the second application for the identified event type; after the execution of the second application is completed, issuing, by the first application, a second virtual file system call including the file descriptor for the cumulative counter of the identified event type as a parameter, wherein a value of the cumulative counter is an aggregation of the value of the first hardware counter and the value of the second hardware counter; and receiving, by the first application, the value of the cumulative counter of the identified event type from an operating system in response to the second virtual file system call. 2. The method of claim 1 wherein the second virtual file system call is a read virtual file system call specifying the file descriptor. 3. The method of claim 1 wherein: each of the first processor and the second processor is associated with a performance monitoring unit (PMU) that exports a set of hardware counters; and the operating system is associated with a performance counter and event (PCE) subsystem that activates the set of hardware counters and provides one or more virtual counters. 4. The method of claim 3 wherein a number of hardware counters in the set of hardware counters does not exceed a threshold. 5. The method of claim 3 wherein the PCE subsystem provides for sharing of hardware counters across multiple event types responsive to the first application requesting a number of event types that exceeds a number of hardware counters in the set of hardware counters. 6. The method of claim 4 further comprising: setting a counter scheduler to trigger a timer interrupt to ensure that a number of counters requested by the first application does not exceed the number of hardware counters in the set of hardware counters. 7. The method of claim 3 further comprising: receiving a sampling request of the first application, where the sampling request specifies a sampling time period; setting a sampling register in the PMU using a requested sampling period; activating an interrupt flag in the PMU to raise an interrupt linked to an interrupt handler in the PCE subsystem; allocating a buffer to associate with a file descriptor; providing the file descriptor to the first application; in response to an interrupt, storing resulting sampling information in the buffer associated with the file descriptor; waking up one or more tasks that are waiting for the resulting sampling information; and upon receiving a close file descriptor request, clearing the sampling register, deactivating the interrupt flag and clearing the buffer. 8. The method of claim 1 wherein: the first virtual file system call comprises a task parameter identifying a task of the second application and a processor parameter; the task parameter indicates any one of a current task, a specific task, or all tasks executed on the first and second processors; and the processor parameter indicates the first processor and the second processor on the computing system. 9. A non-transitory computer readable storage medium including instructions that, when executed by a computing system, cause the computing system to perform a set of operations comprising: identifying, by a first application executed by a processing device of the computing system, an event type of event to be measured with respect to performance of a second application being monitored; issuing, by the first application, a first virtual file system call comprising the identified event type as a parameter, wherein the identified event type corresponds to a cumulative counter, and wherein the cumulative counter is a data field to aggregate a value of a first hardware counter for a first processor, and a value of a second hardware counter for a second processor; subsequent to receiving a file descriptor of the cumulative counter of the identified event type, causing, by the first application, the second application to begin the execution, wherein the first hardware counter is to perform measurements for the first processor during the execution of the second application based on performance characteristics of the second application for the identified event type, and the second hardware counter is to perform measurements for the second processor during the execution of the second application based on the performance characteristics of the second application for the identified event type; after the execution of the second application is completed, issuing, by the first application, a second virtual file system call including the file descriptor for the cumulative counter of the identified event type as a parameter, wherein a value of the cumulative counter is an aggregation of the value of the first hardware counter and the value of the second hardware counter; and receiving, by the first application, the value of the cumulative counter of the identified event type from an operating system in response to the second virtual file system call. 10. The non-transitory computer readable storage medium of claim 9 wherein: each of the first processor and the second processor is associated with a performance monitoring unit (PMU) that exports a set of hardware counters; and the operating system is associated with a performance counter and event (PCE) subsystem that activates the set of hardware counters and provides one or more virtual counters. 11. The non-transitory computer readable storage medium of claim 10 wherein a number of hardware counters in the set of hardware counters does not exceed a threshold. 12. The non-transitory computer readable storage medium of claim 10 wherein the PCE subsystem provides for sharing of hardware counters across multiple event types responsive to the first application requesting a number of event types that exceeds a number of hardware counters in the set of hardware counters. 13. The non-transitory computer readable storage medium of claim 11 wherein the set of operations further comprise: setting a counter scheduler to trigger a timer interrupt to ensure that a number of counters requested by the first application does not exceed the number of hardware counters in the set of hardware counters. 14. The non-transitory computer readable storage medium of claim 11 wherein the set of operations further comprise: receiving a sampling request of the first application, where the sampling request specifies a sampling time period; setting a sampling register in the PMU using a req

Assignees

Inventors

Classifications

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 US10691571B2 cover?
A system for obtaining performance data for different performance events includes a first application monitoring performance of a second application executing on a computing system. The first application identifies the type of event to be measured with respect to the second application, issues a first system call identifying the type of event, receives an identifier corresponding to the event t…
Who is the assignee on this patent?
Red Hat Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/3466. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 23 2020 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).