Главная » 2017 » Ноябрь » 21 » man 2 perfmonctl
01:15
man 2 perfmonctl

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


perfmonctl - интерфейс к блоку слежения за производительностью IA-64



ОБЗОР


#include <syscall.h>
#include <perfmon.h>

long perfmonctl(int fd, int cmd, void *arg, int narg);
Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите
ЗАМЕЧАНИЯ.



ОПИСАНИЕ


Специальный системный вызов perfmonctl() для IA-64 предоставляет интерфейс к PMU
(блок слежения за производительностью, perfomance monitoring unit). PMU содержит
регистры PMD (данные производительности, performance monitoring data) и PMC
(управление слежением за производительностью, performance monitoring control), в
которых собирается статистика по аппаратному обеспечению.

Вызов perfmonctl() выполняет операцию cmd над входными аргументами, указанными в
arg. Количество аргументов указывается в narg. В аргументе fd задаётся контекст
perfmon для операции.

Поддерживаемые значения cmd:

PFM_CREATE_CONTEXT
perfmonctl(int fd, PFM_CREATE_CONTEXT, pfarg_context_t *ctxt, 1);
Создаёт контекст.

Параметр fd игнорируется. Создаётся новый контекст perfmon согласно ctxt и
его файловый дескриптор возвращается в ctxt->ctx_fd.

Файловый дескриптор можно использовать в последующих вызовах perfmonctl(),
а также для чтения уведомлений о событиях (тип pfm_msg_t) с помощью
read(2). Файловый дескриптор можно опрашивать с помощью select(2), poll(2)
и epoll(7).

Контекст можно уничтожить вызвав close(2), указав файловый дескриптор.

PFM_WRITE_PMCS
perfmonctl(int fd, PFM_WRITE_PMCS, pfarg_reg_t *pmcs, n);
Назначает значения регистрам PMC.

PFM_WRITE_PMDS
perfmonctl(int fd, PFM_WRITE_PMDS, pfarg_reg_t *pmds, n);
Назначает значения регистрам PMD.

PFM_READ_PMDS
perfmonctl(int fd, PFM_READ_PMDS, pfarg_reg_t *pmds, n);
Читает регистры PMD.

PFM_START
perfmonctl(int fd, PFM_START, NULL, 0);
Запускает слежение.

PFM_STOP
perfmonctl(int fd, PFM_STOP, NULL, 0);
Останавливает слежение.

PFM_RESTART
perfmonctl(int fd, PFM_RESTART, NULL, 0);
Перезапускает слежение после приёма уведомления о переполнении.

PFM_GET_FEATURES
perfmonctl(int fd, PFM_GET_FEATURES, pfarg_features_t *arg, 1);

PFM_DEBUG
perfmonctl(int fd, PFM_DEBUG, val, 0);
Если val не равно нулю, то включает режим отладки, в противном случае
выключает.

PFM_GET_PMC_RESET_VAL
perfmonctl(int fd, PFM_GET_PMC_RESET_VAL, pfarg_reg_t *req, n);
Сбрасывает регистры PMC в их значения по умолчанию.



ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ


При успешном выполнении операции perfmonctl() возвращает ноль. При ошибке
возвращается -1, а в errno записывается причина ошибки.



ВЕРСИИ


perfmonctl() доступна в Linux начиная с 2.4.



СООТВЕТСТВИЕ СТАНДАРТАМ


Вызов perfmonctl() есть только в Linux и доступен только для архитектуры IA-64.



ЗАМЕЧАНИЯ


В glibc нет обёртки для данного системного вызова; запускайте его с помощью
syscall(2).



СМОТРИТЕ ТАКЖЕ


gprof(1)

Спецификация интерфейса perfmon2



Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 28 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar