cpc_get_smpl_max_rec_count(3cpc) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

cpc_get_smpl_max_rec_count(3cpc)

cpc_npic(3CPC)    CPU Performance Counters Library Functions    cpc_npic(3CPC)

NAME
       cpc_npic,   cpc_smpl_npic,   cpc_caps,   cpc_cciname,   cpc_smpl_iname,
       cpc_cpuref,      cpc_walk_events_all,       cpc_walk_events_all_common,
       cpc_walk_generic_events_all,                       cpc_walk_events_pic,
       cpc_walk_events_pic_common,  cpc_walk_generic_events_pic,  cpc_walk_at‐
       trs,           cpc_walk_attrs_common,           cpc_walk_smpl_recitems,
       cpc_get_smpl_max_rec_count, cpc_walk_smpl_recitems_req - determine  CPU
       performance counter configuration

SYNOPSIS
       cc [ flag... ] file... -lcpc [ library... ]
       #include <libcpc.h>


       uint_t cpc_npic(cpc_t *cpc);


       uint_t cpc_smpl_npic(cpc_t *cpc);


       uint_t cpc_caps(cpc_t *cpc);


       const char *cpc_cciname(cpc_t *cpc);


       const char *cpc_smpl_iname(cpc_t *cpc);


       const char *cpc_cpuref(cpc_t *cpc);


       void cpc_walk_events_all(cpc_t *cpc, void *arg,
            void (*action)(void *arg, const char *event));


       void cpc_walk_events_all_common(cpc_t *cpc, void *arg,
                 int target, void (*action) (void *arg, const char *event));


       void cpc_walk_generic_events_all(cpc_t *cpc, void *arg,
            void (*action)(void *arg, const char *event));


       void cpc_walk_events_pic(cpc_t *cpc, uint_t picno, void *arg,
            void (*action)(void *arg, uint_t picno, const char *event));


       void cpc_walk_events_pic_common(cpc_t *cpc, uint_t picno, void *arg,
                 int target, void (*action)(void *arg, uint_t picno, const char *event));


       void cpc_walk_generic_events_pic(cpc_t *cpc, uint_t picno,
            void *arg, void (*action)(void *arg, uint_t picno,
            const char *event));


       void cpc_walk_attrs(cpc_t *cpc, void *arg,
            void (*action)(void *arg, const char *attr));


       void cpc_walk_attrs_common(cpc_t *cpc, void *arg,
                 int target, void (*action) (void *arg, const char *attr));


       void cpc_walk_smpl_recitems(cpc_t *cpc, void *arg,
                 void (*action)(void *arg, const char *name, int record_item_index));


       void cpc_walk_smpl_recitems_req(cpc_t *cpc, cpc_set_t *set, int request_index, void *arg,
                 void (*action)(void *arg, cpc_set_t *set, int request_index,
                 const char *name, int record_item_index));


       int cpc_get_smpl_max_rec_count(cpc_t *cpc, uint_t max_rec_count);

DESCRIPTION
       The  cpc_cciname()  function  returns  a  printable  description of the
       processor performance counter interfaces, for example, the  string  Ul‐
       traSPARC  III+  & IV. This name should not be assumed to be the same as
       the name the manufacturer might otherwise ascribe to the processor.  It
       simply  names  the  performance counter interfaces as understood by the
       system, and thus names the set of performance counter events  that  can
       be described by that interface.


       The cpc_smpl_iname() function returns the hardware sampling implementa‐
       tion  name  available  on the processor. Currently, only PEBS for Intel
       Precise Events Based Sampling is supported as the hardware sampling im‐
       plementation name.


       The cpc_cpuref() function returns a string that describes  a  reference
       work  that should be consulted to (allow a human to) understand the se‐
       mantics of the performance counter events that are known to the system.
       The string returned might be substantially longer than  80  characters.
       Callers  printing to a terminal might want to insert line breaks as ap‐
       propriate.


       The cpc_npic() function returns the number of performance counters  for
       CPC  accessible on the processor. On the processor that shares the per‐
       formance counters between CPC and SMPL, the reported  number  is  still
       the  one  counting the performance counters that could be used for CPC.
       Therefore, the number may contain the one for the performance  counters
       that could be also used for SMPL.


       The cpc_smpl_npic() function returns the number of performance counters
       for  SMPL accessible on the processor. On the processor that shares the
       performance counters between CPC and SMPL, the reported number is still
       the one counting the performance counters that could be used for  SMPL.
       Therefore,  the number may contain the one for the performance counters
       that could be also used for CPC. If the specified cpc has not been suc‐
       cessfully opened for SMPL, cpc_smpl_npic() sets EINVAL to errno and re‐
       turns 0.


       The cpc_caps() function returns a bitmap containing the bitwise  inclu‐
       sive-OR  of  zero  or  more flags that describe the capabilities of the
       processor. If CPC_CAP_OVERFLOW_INTERRUPT  is present, the processor can
       generate an interrupt when a hardware performance counter overflows. If
       CPC_CAP_OVERFLOW_PRECISE  is present, the processor can determine  pre‐
       cisely  which counter overflowed, thereby affecting the behavior of the
       overflow notification mechanism described in cpc_bind_curlwp(3CPC).  If
       CPC_CAP_SMPL  is  present,  the  hardware  sampling is available on the
       processor. If CPC_CAP_OVERFLOW_SMPL is present, the  hardware  sampling
       available  on  the  processor supports the overflow. If cpc_open() with
       CPC_VER_CURRENT successfully returned a CPC handle, it is still unknown
       if the CPC handle can work not only for CPC but also SMPL. To determine
       if the CPC handle can work for SMPL, cpc_caps() needs  to  be  used  to
       check CPC_CAP_SMPL is present in the returned capabilities.


       The  system maintains a list of performance counter events supported by
       the underlying processor. Some processors are able to count all  events
       on  all  hardware  counters,  while  other  processors restrict certain
       events to be counted only on specific  hardware  counters.  The  system
       also maintains a list of processor-specific attributes that can be used
       for  advanced  configuration of the performance counter hardware. These
       functions allow applications to determine what  events  and  attributes
       are  supported  by the underlying processor. The reference work pointed
       to by cpc_cpuref() should be consulted to understand  the  reasons  for
       and use of the attributes.


       The  cpc_walk_events_all()  function  calls the action function on each
       element of a global event list that supports CPC. The  action  function
       is  called  with  each  event supported by the processor, regardless of
       which counter is capable of counting it. The action function is  called
       only  once  for  each  event, even if that event can be counted on more
       than one counter.


       The cpc_walk_events_all_common() function calls the action function  on
       each element of a global event list that supports the performance moni‐
       toring  type  specified by target. The supported performance monitoring
       type is either CPC_CPC for specifying the  CPC  performance  events  or
       CPC_SMPL    for   specifying   the   SMPL   performance   events.   The
       cpc_walk_events_all_common() function with CPC_CPC as target is equiva‐
       lent to cpc_walk_events_all().


       The Supported macros for target are:

       CPC_CPC     for specifying CPC performance monitoring type


       CPC_SMPL    for specifying SMPL performance monitoring type



       The cpc_walk_events_pic() function calls the action function with  each
       CPC  event  supported  by  the counter indicated by the picno argument,
       where picno ranges from 0 to the value returned by cpc_npic().


       The cpc_walk_events_pic_common() function  calls  the  action  function
       with  each event associated with the performance monitoring type speci‐
       fied by target and supported by the counter indicated  by  picno  argu‐
       ment,  where picno ranges [0, value returned by cpc_npic()) when target
       is CPC_CPC, or [0, value returned by cpc_smpl_npic())  when  target  is
       CPC_SMPL.


       The system maintains a list of platform independent performance counter
       events known as generic events (see generic_events(3CPC)).


       The cpc_walk_generic_events_all() function calls the action function on
       each  generic  event available on the processor. The action function is
       called for each generic event, regardless of which counter  is  capable
       of counting it. The action function is called only once for each event,
       even if that event can be counted on more than one counter.


       The  cpc_walk_generic_events_pic()  function  calls the action function
       with each generic event supported by the counter indicated by the picno
       argument,  where  picno  ranges  from  0  to  the  value  returned   by
       cpc_npic().


       The  system  maintains  a list of attributes that can be used to enable
       advanced features of the performance counters on the underlying proces‐
       sor. The cpc_walk_attrs() function calls the action function  for  each
       attribute name supported for CPC.


       The cpc_walk_attrs_common() function calls the action function for each
       attribute  name supported for the performance monitoring type specified
       by target. The function cpc_walk_attrs_common() with CPC_CPC as  target
       is equivalent to cpc_walk_attrs().


       See  the reference material as returned by cpc_cpuref(3CPC) for the se‐
       mantics use of attributes.


       The result of the SMPL request is stored in the CPC buffers. It can  be
       accessed  as a form of SMPL record that is an array of uint64_t objects
       by using  cpc_buf_smpl_get_record()  and  cpc_buf_smpl_get_item().  How
       many  record  items  are  contained  in  a SMPL record and what kind of
       record items are included in the SMPL record  are  platform  dependent.
       The  format  of  the SMPL record is the layout of record items within a
       record. The format of the SMPL record is common among any  SMPL  events
       and  any  SMPL performance counters on the same processor. The validity
       of the kind of record items included in the SMPL record  are  may  vary
       depending  on the type of SMPL performance counter used and the type of
       SMPL event that is requested. The cpc_walk_smpl_recitems() function  is
       used  to  determine  the kind of record items that are contained in the
       SMPL record on this processor. And, cpc_walk_smpl_recitems_req()  func‐
       tion is used to determine the valid record items in the SMPL record for
       a certain SMPL request.


       The cpc_walk_smpl_recitems() function calls the action function on each
       item  in  the  SMPL  record. name is the name string of the SMPL record
       item. record_item_index is the integer value index to refer the item in
       the SMPL record.


       The cpc_walk_smpl_recitems_req() function calls action function on each
       item in the SMPL record supported by the SMPL request specified by  set
       and  request_index_name  is  the  name  string of the SMPL record item.
       record_item_index is the integer value index to refer the item  in  the
       SMPL record.


       The cpc_get_smpl_max_rec_count() function returns the maximum number of
       SMPL  records  per  a  request supported by the kernel for the sampling
       hardware on  the  processor  into  the  uint_t  object  pointed  to  by
       max_rec_count.  The  request  indicates that one performance monitoring
       request is added by cpc_set_add_request(). When adding a  SMPL  request
       using  cpc_set_add_request(), the application needs to specify the num‐
       ber of SMPL records that should be collected  for  the  request,  using
       smpl_nrecs  attribute.  The  kernel  limits  the maximum number of SMPL
       records for one request that can be returned to the application at  one
       time,    depending   on   the   underlying   sampling   hardware.   The
       cpc_get_smpl_max_rec_count() returns the maximum  number  that  can  be
       specified to smpl_nrecs attribute.

RETURN VALUES
       The  cpc_cciname()  function  always returns a printable description of
       the processor performance counter interfaces.


       The cpc_smpl_iname() function always returns a printable description of
       the hardware sampling implementation available on the processor.


       The cpc_cpuref() function always returns a string that describes a ref‐
       erence work.


       The cpc_npic() function always returns the number of performance  coun‐
       ters accessible on the processor.


       The  cpc_smpl_npic()  function always returns the number of performance
       counters for SMPL accessible on the processor.


       The cpc_caps() function always returns a bitmap containing the  bitwise
       inclusive-OR  of  zero  or more flags that describe the capabilities of
       the processor.


       If the user-defined function specified by action  is  not  called,  the
       cpc_walk_events_all(),                    cpc_walk_events_all_common(),
       cpc_walk_events_pic(), cpc_walk_events_pic_common(),  cpc_walk_attrs(),
       cpc_walk_attrs_common(),                 cpc_walk_generic_events_pic(),
       cpc_walk_smpl_recitems(),  and  cpc_walk_smpl_recitems_req()  functions
       set errno to indicate the error.


       The cpc_get_smpl_max_rec_count() sets errno to EINVAL and returns -1 if
       cpc    was    not    successfully    opened    for   SMPL.   Otherwise,
       cpc_get_smpl_max_rec_count() returns 0.

ERRORS
       The        cpc_walk_events_all(),         cpc_walk_events_all_common(),
       cpc_walk_events_pic(),  cpc_walk_events_pic_common(), cpc_walk_attrs(),
       cpc_walk_attrs_common(),                 cpc_walk_generic_events_pic(),
       cpc_walk_smpl_recitems(),  and  cpc_walk_smpl_recitems_req()  functions
       will fail if:

       ENOMEM    There is not enough memory available.



       The cpc_get_smpl_max_rec_count() function will fail if:

       EINVAL    CPC was not successfully opened with SMPL.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelSafe


SEE ALSO
       cpc_bind_curlwp(3CPC),   generic_events(3CPC),   libcpc(3LIB),  attrib‐
       utes(7)

Oracle Solaris 11.4               8 Oct 2008                    cpc_npic(3CPC)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3