pm_get_data, pm_get_tdata, pm_get_Tdata, pm_get_data_cpu, pm_get_tdata_cpu, pm_get_Tdata_cpu, pm_get_data_lcpu, pm_get_tdata_lcpu und pm_get_Tdata_lcpu Subroutine
Zweck
Gibt systemweite Leistungsüberwachungsdaten zurück.
Bibliothek
Performance Monitor APIs Library (libpmapi.a)
Syntax
#include <pmapi.h>
int pm_get_data ( *pmdata)
pm_data_t *pmdata;
int pm_get_tdata (pmdata, * time)
pm_data_t *pmdata;
timebasestruct_t *time;
int pm_get_Tdata (pmdata, * times)
pm_data_t *pmdata;
pm_accu_time_t *times;
int pm_get_data_cpu (cpuid, *pmdata)
int cpuid;
pm_data_t *pmdata;
int pm_get_tdata_cpu (cpuid, *pmdata, *time)
int cpuid;
pm_data_t *pmdata;
timebasestruct_t *time;
int pm_get_Tdata_cpu (cpuid, *pmdata, *times)
int cpuid;
pm_data_t *pmdata;
pm_accu_time_t *times
int pm_get_data_lcpu (lcpuid, *pmdata)
int lcpuid;
pm_data_t *pmdata;
int pm_get_tdata_lcpu (lcpuid, *pmdata, *time)
int lcpuid;
pm_data_t *pmdata;
timebasestruct_t *time;
int pm_get_Tdata_lcpu (lcpuid, *pmdata, *times)
int lcpuid;
pm_data_t *pmdata;
pm_accu_time_t *times
Beschreibung
Die Subroutine pm_get_data ruft die aktuellen systemweiten Leistungsüberwachungsdaten ab.
Die Subroutine pm_get_tdata ruft die aktuellen systemweiten Leistungsüberwachungsdaten und eine Zeitmarke ab, die angibt, wann die Hardwarenzähler zuletzt gelesen wurden.
Die Subroutine pm_get_Tdata ruft die aktuellen systemweiten Leistungsüberwachungsdaten und die kumulierte Zeit (Zeitbasis, PURR-Zeit und SPURR-Zeit) ab, zu der die Ereignisse gezählt wurden.
Die Subroutinen pm_get_data_cpu, pm_get_tdata_cpuund pm_get_Tdata_cpu rufen die aktuellen Leistungsüberwachungsdaten für einen bestimmten Prozessor ab. Die angegebene Prozessor-ID stellt eine fortlaufende Zahl dar, die von0in_system_configuration.ncpusDiese Subroutinen können nur verwendet werden, wenn keine Operationen zur dynamischen Rekonfiguration auf der Maschine ausgeführt werden, da beim Hinzufügen oder Entfernen von Prozessoren die Prozessornummerierung geändert wird und die angegebene Prozessornummer verschiedene Prozessoren von einem Aufruf an einen anderen bestimmen kann. Diese Subroutinen werden aus Gründen der Kompatibilität mit früheren Versionen beibehalten.
Die Subroutine pm_get_data_cpu ruft die aktuellen Leistungsüberwachungsdaten für den angegebenen Prozessor ab.
Die Subroutine pm_get_tdata_cpu ruft die aktuellen Performance Monitor-Daten für den angegebenen Prozessor und eine Zeitmarke ab, die den Zeitpunkt angibt, zu dem die Hardwarezähler zuletzt gelesen wurden.
Die Subroutine pm_get_Tdata_cpu ruft die aktuellen Leistungsüberwachungsdaten für den angegebenen Prozessor und die kumulierte Zeit (Zeitbasis, PURR-Zeit und SPURR-Zeit) ab, zu der die Ereignisse gezählt wurden.
Die Subroutinen pm_get_data_lcpu, pm_get_tdata_lcpuund pm_get_Tdata_lcpu rufen die aktuellen Leistungsüberwachungsdaten für einen angegebenen logischen Prozessor ab. Die angegebene Prozessor-ID stellt einen Wert dar, der von0in_system_configuration.max_ncpus. Dieser Wert stellt immer denselben Prozessor dar, auch wenn dynamische Rekonfigurationsoperationen ausgeführt wurden. Diese Subroutinen können einen Fehler zurückgeben, wenn die angegebene logische Prozessornummer während des Zählintervalls nie ausgeführt wurde.
Die Subroutine pm_get_data_lcpu ruft die aktuellen Leistungsüberwachungsdaten für den angegebenen logischen Prozessor ab.
Die Subroutine pm_get_tdata_lcpu ruft die aktuellen Leistungsüberwachungsdaten für den angegebenen logischen Prozessor und eine Zeitmarke ab, die den Zeitpunkt angibt, zu dem die Hardwarezähler zuletzt gelesen wurden.
Die Subroutine pm_get_Tdata_lcpu ruft die aktuellen Leistungsüberwachungsdaten für den angegebenen logischen Prozessor sowie die kumulierte Zeit (Zeitbasis, PURR-Zeit und SPURR-Zeit) ab, zu der die Ereignisse gezählt wurden.
Die Performance Monitor-Daten sind immer eine Gruppe (einer pro Hardwarenzähler auf den verwendeten Maschinen) von 64-Bit-Werten.
Parameter
| Element | Beschreibung |
|---|---|
| * pmdata | Zeiger auf eine Struktur, die die zurückgegebenen systemweiten Leistungsüberwachungsdaten enthält. |
| *TIME | Zeiger auf eine Struktur, die den timebase-Wert für den letzten Zeitpunkt enthält, zu dem die Zähler für die Leistungsüberwachung der Hardware gelesen wurden. Dies kann mit der Subroutine time_base_to_time in Zeit konvertiert werden. |
| * mal | Zeiger auf eine Struktur, die die kumulierte Zeit (Zeitbasis, PURR-Zeit und SPURR-Zeit) enthält, zu der die Ereignisse gezählt wurden. Jeder Zeitzähler kann mit der Subroutine time_base_to_time in Zeit konvertiert werden. |
| cpuid | Fortlaufende Prozessornummern im Bereich von0in_system_configuration.ncpus. Dieser Wert gibt nicht immer denselben Prozessor an, auch wenn dynamische Rekonfigurationsoperationen ausgeführt wurden. |
| lcpuid | Logische Prozessor-ID. Jede Kennung bleibt zwischen einem Warmstart mit einem bestimmten Prozessor verbunden, auch nach dynamischen Rekonfigurationsoperationen. Dieser Wert muss im Bereich von0in_system_configuartion.max_ncpus. |
Rückgabewerte
| Element | Beschreibung |
|---|---|
| 0 | Operation wurde erfolgreich beendet. |
| Positiver Fehlercode | Verwenden Sie die Subroutine pm_error , um den Fehlercode zu decodieren. |
Fehlercodes
Weitere Informationen finden Sie in der Beschreibung der Subroutine pm_error.
Dateien
| Element | Beschreibung |
|---|---|
| /usr/include/pmapi.h | Definiert Standardmakros, Datentypen und Subroutinen. |