table of contents
PAPI_detach(3) | PAPI | PAPI_detach(3) |
NAME¶
PAPI_detach - Detach PAPI event set from previously specified thread id and restore to executing thread.
SYNOPSIS¶
Detailed Description¶
C Interface:
#include <papi.h>
int PAPI_detach( int EventSet, unsigned long tid );
int PAPI_detach( int EventSet, unsigned long tid );
PAPI_detach is a wrapper function that calls PAPI_set_opt 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.
Parameters:
EventSet An integer handle for a PAPI EventSet as
created by PAPI_create_eventset.
tid A thread id as obtained from, for example, PAPI_list_threads or PAPI_thread_id.
tid A thread id as obtained from, for example, PAPI_list_threads or PAPI_thread_id.
Return values:
PAPI_ECMP This feature is unsupported on this
component.
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.
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 );
See also:
PAPI_set_opt
PAPI_list_threads
PAPI_thread_id
PAPI_thread_init
PAPI_list_threads
PAPI_thread_id
PAPI_thread_init
Author¶
Generated automatically by Doxygen for PAPI from the source code.
Thu May 9 2024 | Version 5.6.0.0 |