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 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.
Die Leistungsüberwachungsdaten sind immer eine Gruppe von 64-Bit-Werten pro Hardwarenzähler auf dem verwendeten System.

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.