Facilities for detailed software performance analysis in a multithreaded processor
First Claim
1. A multithreaded processor, arranged and configured to process a plurality of threads and facilitate thread switch, for monitoring performance of the application executed by the processor, comprising:
- (a) a first thread arranged and configured for executing the application on the first thread;
(b) a second thread arranged and configured for executing recording of at least one selectable thread switch event upon detection of the selectable thread switch event during execution of the application on the first thread; and
(c) a thread switch controller for detecting the selectable thread switch event and controlling thread switch between the first thread and the second thread, wherein in response to detection of the selectable thread switch event, the thread switch controller switches processing from the first thread to the second thread, whereby the second thread records information of the selectable thread switch event, and upon completion of recording, the thread switch controller switches processing from the second thread to a thread other than the second thread to continue execution of the application.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, apparatus, and article of manufacture for monitoring performance of an application or a system program executed by a multithreaded processor arranged and configured to process a plurality of threads and facilitate thread switch. The low-level invisible events, such as cache misses, or other events of interest of an application or a system program, are detected and recorded by using a software monitor program running on a thread of the multithreaded processor via thread switching techniques. The monitoring thread gains control once a selected event is detected while executing the application or system program, and it relinquishes the control after completing the recording of the selected event. The recorded information allows one to dynamically profile the application or the system program and to provide insight into the performance characteristics of the application or the system program.
-
Citations
15 Claims
-
1. A multithreaded processor, arranged and configured to process a plurality of threads and facilitate thread switch, for monitoring performance of the application executed by the processor, comprising:
-
(a) a first thread arranged and configured for executing the application on the first thread;
(b) a second thread arranged and configured for executing recording of at least one selectable thread switch event upon detection of the selectable thread switch event during execution of the application on the first thread; and
(c) a thread switch controller for detecting the selectable thread switch event and controlling thread switch between the first thread and the second thread, wherein in response to detection of the selectable thread switch event, the thread switch controller switches processing from the first thread to the second thread, whereby the second thread records information of the selectable thread switch event, and upon completion of recording, the thread switch controller switches processing from the second thread to a thread other than the second thread to continue execution of the application. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of monitoring at least one selectable event of at least one application by a multithreaded processor which is arranged and configured to process a plurality of threads and facilitate thread switch, the method comprising the steps of:
-
(a) executing the application on a first thread of the multithreaded processor;
(b) detecting the selectable event of the application by a thread switch controller;
(c) switching processing from the first thread to a second thread responsive to detecting the selectable event;
(d) executing the second thread to record information of the selectable event; and
(e) switching processing from the second thread to a thread other than the second thread, upon completion of recording. - View Dependent Claims (7, 8, 9, 10)
-
-
11. An article of manufacture for a computer-based user-interface, the article of manufacture comprising a computer readable medium having instructions for causing a computer to perform a method, by a multithreaded processor arranged and configured to process a plurality of threads and facilitate thread switch, the method comprising the steps of:
-
(a) executing the application on a first thread of the multithreaded processor;
(b) detecting at least one selectable event of the application by a thread switch controller of the multithreaded processor;
(c) switching processing from the first thread to a second thread responsive to detecting the selectable event;
(d) executing the second thread to record information of the selectable event; and
(e) switching processing from the second thread to a thread other than the second thread, upon completion of recording.
-
-
12. A computer system, comprising:
-
a multithreaded processor, said multithreaded processor supporting the concurrent execution of a plurality of threads and including;
(a) a plurality of sets of registers, each set corresponding to a respective thread, and (b) thread switch logic, said thread switch logic switching execution from one of said plurality of threads to another of said plurality of threads in response to detection of a thread switch condition; and
a performance monitor embodied as a plurality of processor-executable instructions in a monitoring thread stored on said computer system, wherein said monitoring thread records the occurrence of a thread switch event responsive to said thread switch logic switching execution from a monitored thread to said monitoring thread, and wherein said monitoring thread causes said thread switch logic to switch execution to a thread other than said monitoring thread after recording the occurrence of said thread switch event. - View Dependent Claims (13, 14, 15)
-
Specification