pm_get_data_pthread_mx 또는 pm_get_tdata_pthread_mx 서브루틴
용도
대상 pthread에 대한 계수기 멀티플렉싱 모드에서 성능 모니터 데이터를 리턴합니다.
라이브러리
성능 모니터 API 라이브러리 (libpmapi.a)
구문
#include <pmapi.h>
int pm_get_data_pthread_mx (pid, tid, ptid, *pmdata)
pid_t pid;
tid_t tid;
ptid_t ptid;
pm_data_mx_t *pmdata;
int pm_get_tdata_pthread_mx (pid, tid, ptid, *pmdata, *time)
pid_t pid;
tid_t tid;
ptid_t ptid;
pm_data_mx_t *pmdata;
timebasestruct_t *time; 설명
pm_get_data_pthread_mx 서브루틴은 대상 pthread에 대한 카운터 멀티플렉싱 모드에서 현재 성능 모니터 데이터를 검색합니다. pthread가 중지되어야 하며 호출 프로세스의 제어 하에 디버그 대상 프로세스의 일부여야 합니다.
pm_get_tdata_pthread_mx 서브루틴은 대상 pthread에 대한 카운터 멀티플렉싱 모드에서 현재 성능 모니터 데이터를 검색하고 하드웨어 카운터를 마지막으로 읽은 시간을 표시하는 시간소인을 검색합니다.
pthread가 1: 1모드에서 실행 중인 경우 tid 매개변수만 지정해야 합니다. pthread가 m: n 모드에서 실행 중인 경우 ptid 매개변수만 지정해야 합니다. ptid 및 tid 매개변수가 둘 다 지정된 경우, 이들은 ptid 매개변수가 지정된 단일 pthread를 참조해야 하며 현재 tid 매개변수가 지정된 커널 스레드에서 실행 중이어야 합니다.
성능 모니터 데이터는 항상 64비트값 세트 (사용되는 시스템의 하드웨어 계수기당 하나) 의 배열입니다.
사용자 애플리케이션은 누적된 계수 및 시간을 저장하기 위해 할당된 배열을 해제해야 합니다 ( pmdata 매개변수의 accu_set 필드).
매개변수
| 항목 | 설명 |
|---|---|
| pid | 대상 pthread의 프로세스 ID입니다. 대상 프로세스는 호출자 프로세스의 디버기여야 합니다. |
| tid | 대상 pthread의 스레드 ID. 이 매개변수를 무시하려면 0으로 설정하십시오. |
| ptid | 대상 pthread의 Pthread ID. 이 매개변수를 무시하려면 0으로 설정하십시오. |
| * pmdata | 대상 pthread에 대한 성능 모니터 데이터 (계수된 각 이벤트 세트에 대한 누적된 카운터, 누적된 시간 및 누적된 PURR및 SPURR 시간의 배열) 를 리턴하는 구조에 대한 포인터. |
| * 시간 | 하드웨어 성능 모니터링 카운터를 마지막으로 읽었을 때의 시간 기본 값을 포함하는 구조에 대한 포인터입니다. time_base_to_time 서브루틴을 사용하여 시간으로 변환할 수 있습니다. |
리턴 값
| 항목 | 설명 |
|---|---|
| 0 | 오류가 발생하지 않았습니다. |
| 양수 오류 코드 | 오류 코드를 디코드하려면 pm_error 서브루틴 을 참조하십시오. |
오류 코드
pm_error 서브루틴을 참조하십시오.
파일
| 항목 | 설명 |
|---|---|
| /usr/include/pmapi.h | 표준 매크로, 데이터 유형 및 서브루틴을 정의합니다. |