perfmonctl(2)

NUME
perfmonctl - interfață pentru unitatea de monitorizare a performanței IA-64

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

long perfmonctl(int narg;
                int fd, int cmd, void arg[narg], int narg);

Nota: Nu există nicio funcție învăluitoare glibc pentru acest apel de sistem; consultați secțiunea ISTORIC.

DESCRIERE
Apelul de sistem specific IA-64 perfmonctl() oferă o interfață cu PMU (unitatea de monitorizare a performanțelor). PMU constă din registrele PMD (date de monitorizare a performanțelor) și PMC (controlul monitorizării performanțelorl), care colectează statisticile hardware.

perfmonctl() aplică operația cmd la argumentele de intrare specificate de arg. Numărul de argumente este definit de narg. Argumentul fd specifică contextul perfmon pe care se operează.

Valorile acceptate pentru cmd sunt:

PFM_CREATE_CONTEXT
    perfmonctl(int fd, PFM_CREATE_CONTEXT, pfarg_context_t *ctxt, 1);
    Stabilește un context.

    Parametrul fd este ignorat. Se creează un nou context perfmon, după cum se specifică în ctxt, iar descriptorul său de fișier este returnat în ctxt->ctx_fd.

    Descriptorul de fișier poate fi utilizat în apelurile ulterioare la perfmonctl() și poate fi utilizat pentru a citi notificările de evenimente (tip pfm_msg_t) utilizând read(2). Descriptorul de fișier poate fi interogat folosind select(2), poll(2) și epoll(7).

    Contextul poate fi distrus prin apelarea close(2) pe descriptorul de fișier.

PFM_WRITE_PMCS
    perfmonctl(int fd, PFM_WRITE_PMCS, pfarg_reg_t *pmcs, n);
    Stabilește registrele PMC.

PFM_WRITE_PMDS
    perfmonctl(int fd, PFM_WRITE_PMDS, pfarg_reg_t *pmds, n);
    Stabilește registrele PMD.

PFM_READ_PMDS
    perfmonctl(int fd, PFM_READ_PMDS, pfarg_reg_t *pmds, n);
    Citește registrele PMD.

PFM_START
    perfmonctl(int fd, PFM_START, NULL, 0);
    Pornește monitorizarea.

PFM_STOP
    perfmonctl(int fd, PFM_STOP, NULL, 0);
    Oprește monitorizarea.

PFM_LOAD_CONTEXT
    perfmonctl(int fd, PFM_LOAD_CONTEXT, pfarg_load_t *largs, 1);
    Atașează contextul la un fir.

PFM_UNLOAD_CONTEXT
    perfmonctl(int fd, PFM_UNLOAD_CONTEXT, NULL, 0);
    Detașează contextul de la un fir.

PFM_RESTART
    perfmonctl(int fd, PFM_RESTART, NULL, 0);
    Repornește monitorizarea după primirea unei notificări de depășire.

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

PFM_DEBUG
    perfmonctl(int fd, PFM_DEBUG, val, 0);
    Dacă val este diferit de zero, se activează modul de depanare, altfel se dezactivează.

PFM_GET_PMC_RESET_VAL
    perfmonctl(int fd, PFM_GET_PMC_RESET_VAL, pfarg_reg_t *req, n);
    Reinițializează registrele PMC la valorile implicite.

VALOAREA RETURNATĂ
perfmonctl() returnează zero atunci când operația este reușită. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

STANDARDE
Linux pe IA-64.

ISTORIC
Linux 2.4. Eliminat în Linux 5.10.

Acest apel de sistem a fost defect timp de mai mulți ani și, în cele din urmă, a fost eliminat în Linux 5.10.

glibc nu oferă o funcție de învăluire pentru acest apel de sistem; pe nucleele în care există, apelați-l folosind syscall(2).

CONSULTAȚI ȘI
gprof(1)

Specificația interfeței perfmon2

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.