Tracing using configurable reflection chaining
US-2024411664-A1 · Dec 12, 2024 · US
US10691571B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10691571-B2 |
| Application number | US-201715602480-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 23, 2017 |
| Priority date | Dec 4, 2009 |
| Publication date | Jun 23, 2020 |
| Grant date | Jun 23, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
for performance assessment · CPC title
Performance evaluation by tracing or monitoring · CPC title
Monitoring of software · CPC title
Monitoring specific for caches · CPC title
Monitoring involving counting · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.