pm_get_data_generic, Subroutine
Zweck
Gibt Leistungsüberwachungsdaten für die folgenden Threads und Gruppen zurück:
- Zielthread.
- POSIX -Zielthread (pthread).
- Die Zählgruppe des Zielthreads.
- Der Zählermultiplexmodus für den Zielthread.
- Der Zählermultiplexmodus für die Zählgruppe, zu der ein Zielthread gehört.
- Der Zählermultiplexmodus für einen Ziel-pthread.
Bibliothek
Leistungsmonitor-API-Bibliothek (libpmapi.a)
Syntax
#include <pmapi.h>
int pm_get_data_generic (pid,tid,ptid, type,*pmdata)
pid_t pid;
tid_t tid;
ptid_t ptid;
profiler_type_t type;
pm_data_time_t *pmdata;
Beschreibung
Die Subroutine pm_get_data_generic ruft die aktuellen Leistungsüberwachungsdaten auf der Basis von Parametern ab, die für die Subroutine bereitgestellt werden. Wenn der pthread im Modus 1: 1 ausgeführt wird, darf nur der Parameter tid angegeben werden. Wenn der pthread im Modus m: n ausgeführt wird, muss nur der Parameter ptid angegeben werden.
Wenn sowohl die Parameter ptid als auch tid angegeben werden, müssen die folgenden Bedingungen erfüllt sein:
Die Leistungsüberwachungsdaten sind immer eine Gruppe von 64-Bit-Werten pro Hardwarenzähler auf dem verwendeten System.- Die Parameter ptid und tid müssen auf einen einzelnen pthread verweisen.
- Der Thread muss in einem Kernel-Thread-Kontext mit dem angegebenen Parameter tid ausgeführt werden.
Parameter
- pid
- Prozess-ID eines Zielthreads. Der Zielthread muss ein Debuggee-Prozess des aufrufenden Prozesses sein.
- TID
- Die Thread-ID eines Zielthreads. Sie können den Wert 0 zuordnen, um den Parameter zu ignorieren.
- PTID
- pthread-ID des Ziel-pthread. Sie können den Wert 0 zuordnen, um den Parameter zu ignorieren.
- Typ
- Typ des Ziels. Es gibt zwei Typen von Zielen:
- P_THREAD
- Dieses Flag wird gesetzt, wenn der Zielthread ein pthread ist.
- P_THREAD_GROUP
- Dieses Flag wird gesetzt, wenn das Ziel eine Gruppe ist.
- * pmdata
- Zeiger auf eine Struktur, um die Leistungsüberwachungsdaten zurückzugeben. Die Struktur enthält ein Array von kumulierten Zählern, kumulierte Zeit, kumulierte PURR-Zeit (PURR = Processor Utilization Resource Register) und SPURR-Zeit (SPURR = Scalable Processor Utilization Resource Register) für jede Ereignisgruppe, die für den Zielkernel-Thread gezählt wird.
Rückgabewerte
Die Subroutine pm_get_data_generic gibt 0 zurück, wenn während der Ausführung der Subroutine keine Fehler aufgetreten sind; andernfalls wird ein positiver Fehlercode zurückgegeben. Verwenden Sie die Subroutine pm_error , um den Fehlercode zu decodieren.
| Element | Beschreibung |
|---|---|
| /usr/include/pmapi.h | Definiert Standardmakros, Datentypen und Subroutinen. |