Browse Prior Art Database

Generic Performance Monitor Interface Event List Encoding

IP.com Disclosure Number: IPCOM000118060D
Original Publication Date: 1996-Aug-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 4 page(s) / 160K

Publishing Venue

IBM

Related People

Levine, FE: AUTHOR [+2]

Abstract

An algorithm is defined that takes a user-specified list of events and maps it into a machine-specific support.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 29% of the total text.

Generic Performance Monitor Interface Event List Encoding

      An algorithm is defined that takes a user-specified list of
events and maps it into a machine-specific support.

      Based upon the criteria set out in (*), this disclosure
identifies an algorithm which provides the following support:
  o  The following set of parameters as input:
     - A "trigger event," that is, an event which must occur
        some user specified number of times before additional
        counting can occur.
     - A "correlate event," that is, an event which must occur
        on each pass.
       - A list of events to be counted.
  o  Map these parameters to a table driven machine specific
      encoding, which may be used to initiate machine specific
      performance monitoring requests.

Pseudo code which provides this support is found below.

      The need is to assign events to counters while minimizing the
number of requests per pass required to process the events that the
user has specified.  The correlate_event and the trigger_event must
be in the list of events specified by the end user.  First, construct
a working array, which is used to assign events.  This working area
is initialized to be a copy of or point to (or be an index into) each
of the original events.
  if ( (user_num_events > MAX_NUMBER_EVENTS) ||
        (no_events_specified) ) exit with fatal error
  if any duplicates found
    Set error condition of duplicate event
    Delete duplicates from the working list

      Initialize the list of not available counters.  This list
will include counter 1, if a trigger event is specified.  It also may
include another counter if the correlate event is only supported in
one counter (taking into account the specification of the trigger
event.

      Initialize the list of supported events to have no entries.

      Verify trigger event is in the list of events passed and delete
entry from working list.  Also verify that the trigger event is
available in counter one.
  o  Exit with a fatal error if trigger event is specified, but
      not in the list of events or not available for counting.
  o  If trigger event is specified, put counter 1 in the list of
      not available counters.  Also add the specified trigger event
      to the list of supported events.

      If a correlate event is specified, then verify correlate
event is in the list of events passed and delete entry from working
list.  Also, verify that the correlate event is available in at least
one counter.
  o  Exit with a fatal error if the correlate event is specified,
      but not in the list or not available for counting.

      If the correlate event is forced to be in exactly one counter
(taking into account the previously processed trigger event), then
add that counter into the not available counter list.

      Add the correlate event to...