Show Password


CentOS 7.0 - man page for papi_sprofil (centos section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Man Page Set:

PAPI_sprofil(3) 			       PAPI				  PAPI_sprofil(3)

       PAPI_sprofil -

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

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

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

	   o 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.
	   o 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.
	   o offset -- the start address of the region to be profiled.
	   o 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


	   * 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,
	   * if ( retval != PAPI_OK ) handle_error( retval );

       See Also:
       Generated automatically by Doxygen for PAPI from the source code.

Version 			 Tue Jun 17 2014			  PAPI_sprofil(3)

All times are GMT -4. The time now is 05:20 PM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.