PAPI_attach

Langue: en

Version: October, 2006 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

 PAPI_attach  - attach PAPI event set to the specified thread id
 PAPI_detach  - detach PAPI event set from previously specified thread id and restore to executing thread
 

SYNOPSIS

C Interface
 #include <papi.h>
 int PAPI_attach(int EventSet, unsigned long tid);
 int PAPI_detach(int EventSet);
 
Fortran Interface
 <none>
 

DESCRIPTION

PAPI_attach() and PAPI_detach() are wrapper functions that access PAPI_set_opt() (3) to allow PAPI to monitor performance counts on a thread other than the one currently executing. This is sometimes referred to as third party monitoring. PAPI_attach() connects the specified EventSet to the specifed thread; PAPI_detach() breaks that connection and restores the EventSet to the original executing thread.

ARGUMENTS

EventSet -- an integer handle for a PAPI Event Set as created by PAPI_create_eventset(3)

tid -- a thread id as obtained from, for example, PAPI_list_threads(3) or PAPI_thread_id(3).

RETURN VALUES

On success, these functions return PAPI_OK. On error, a negative error code is returned.

ERRORS

PAPI_ESBSTR
This feature is unsupported on this substrate.
PAPI_EINVAL
One or more of the arguments is invalid.
PAPI_ENOEVST
The event set specified does not exist.
PAPI_EISRUN
The event set is currently counting events.

EXAMPLES

 int EventSet = PAPI_NULL;
 unsigned long pid;
 
 pid = fork();
 if (pid <= 0)
   exit(1);
         
 if (PAPI_create_eventset(&EventSet) != PAPI_OK)
   exit(1);
 
 /* Add Total Instructions Executed to our EventSet */
 
 if (PAPI_add_event(EventSet, PAPI_TOT_INS) != PAPI_OK)
   exit(1);
 
 /* Attach this EventSet to the forked process */
 
 if (PAPI_attach(EventSet, pid) != PAPI_OK)
   exit(1);
 
 
 

BUGS

There are no known bugs in these functions.

SEE ALSO

PAPI_list_threads(3), PAPI_thread_id(3), PAPI_thread_init(3), PAPI_set_opt(3)