PAPI_sprofil man page on Scientific

Man page or keyword search:  
man Server   26626 pages
apropos Keyword Search (all sections)
Output format
Scientific logo
[printable version]

PAPI_sprofil(3)			     PAPI		       PAPI_sprofil(3)

NAME
       PAPI_sprofil -

       Generate PC histogram data from multiple code regions where hardware
       counter overflow occurs.

SYNOPSIS
Detailed Description
       C Interface:
	   #include <papi.h>
	    int PAPI_sprofil( PAPI_sprofil_t * prof, int profcnt, int
	   EventSet, int EventCode, int threshold, int flags );

       Parameters:
	   *prof pointer to an array of PAPI_sprofil_t structures. Each copy
	   of the structure contains the following:

	   · buf -- pointer to a buffer of bufsiz bytes in which the histogram
	     counts are stored in an array of unsigned short, unsigned int, or
	     unsigned long long values, or 'buckets'. The size of the buckets
	     is determined by values in the flags argument.
	   · bufsiz -- the size of the histogram buffer in bytes. It is
	     computed from the length of the code region to be profiled, the
	     size of the buckets, and the scale factor as discussed below.
	   · offset -- the start address of the region to be profiled.
	   · scale -- broadly and historically speaking, a contraction factor
	     that indicates how much smaller the histogram buffer is than the
	     region to be profiled. More precisely, scale is interpreted as an
	     unsigned 16-bit fixed-point fraction with the decimal point
	     implied on the left. Its value is the reciprocal of the number of
	     addresses in a subdivision, per counter of histogram buffer.
	   profcnt number of structures in the prof array for hardware
	   profiling.
	   EventSet The PAPI EventSet to profile. This EventSet is marked as
	   profiling-ready, but profiling doesn't actually start until a
	   PAPI_start() call is issued.
	   EventCode Code of the Event in the EventSet to profile. This event
	   must already be a member of the EventSet.
	   threshold minimum number of events that must occur before the PC is
	   sampled. If hardware overflow is supported for your component, this
	   threshold will trigger an interrupt when reached. Otherwise, the
	   counters will be sampled periodically and the PC will be recorded
	   for the first sample that exceeds the threshold. If the value of
	   threshold is 0, profiling will be disabled for this event.
	   flags bit pattern to control profiling behavior. Defined values are
	   given in a table in the documentation for PAPI_pofil

       Return values:
	   Return values for PAPI_sprofil() are identical to those for
	   PAPI_profil. Please refer to that page for further details.

       PAPI_sprofil() is a structure driven profiler that profiles one or more
       disjoint regions of code in a single call. It accepts a pointer to a
       preinitialized array of sprofil structures, and initiates profiling
       based on the values contained in the array. Each structure in the array
       defines the profiling parameters that are normally passed to
       PAPI_profil(). For more information on profiling, PAPI_profil

       Example:

	    int retval;
	    unsigned long length;
	    PAPI_exe_info_t *prginfo;
	    unsigned short *profbuf1, *profbuf2, profbucket;
	    PAPI_sprofil_t sprof[3];

	    prginfo = PAPI_get_executable_info();
	    if (prginfo == NULL) handle_error( NULL );
	    length = (unsigned long)(prginfo->text_end - prginfo->text_start);
	    // Allocate 2 buffers of equal length
	    profbuf1 = (unsigned short *)malloc(length);
	    profbuf2 = (unsigned short *)malloc(length);
	    if ((profbuf1 == NULL) || (profbuf2 == NULL))
	      handle_error( NULL );
	    memset(profbuf1,0x00,length);
	    memset(profbuf2,0x00,length);
	    // First buffer
	    sprof[0].pr_base = profbuf1;
	    sprof[0].pr_size = length;
	    sprof[0].pr_off = (caddr_t) DO_FLOPS;
	    sprof[0].pr_scale = 0x10000;
	    // Second buffer
	    sprof[1].pr_base = profbuf2;
	    sprof[1].pr_size = length;
	    sprof[1].pr_off = (caddr_t) DO_READS;
	    sprof[1].pr_scale = 0x10000;
	    // Overflow bucket
	    sprof[2].pr_base = profbucket;
	    sprof[2].pr_size = 1;
	    sprof[2].pr_off = 0;
	    sprof[2].pr_scale = 0x0002;
	    retval = PAPI_sprofil(sprof, EventSet, PAPI_FP_INS, 1000000,
	    PAPI_PROFIL_POSIX | PAPI_PROFIL_BUCKET_16)) != PAPI_OK)
	    if ( retval != PAPI_OK ) handle_error( retval );

       See also:
	   PAPI_overflow
	   PAPI_get_executable_info
	   PAPI_profil
Author
       Generated automatically by Doxygen for PAPI from the source code.

Version 5.1.1.0			Tue May 21 2013		       PAPI_sprofil(3)
[top]

List of man pages available for Scientific

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net