Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Apparatus to Selectively Control Monitoring of Software Domains

IP.com Disclosure Number: IPCOM000111977D
Original Publication Date: 1994-Apr-01
Included in the Prior Art Database: 2005-Mar-26
Document File: 6 page(s) / 264K

Publishing Venue

IBM

Related People

Rusnak, RJ: AUTHOR [+2]

Abstract

This apparatus ascertains the current software domain, by means of prior programming, and allows or disallows monitoring of the execution characteristics of the selected domain.

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

Apparatus to Selectively Control Monitoring of Software Domains

      This apparatus ascertains the current software domain, by means
of prior programming, and allows or disallows monitoring of the
execution characteristics of the selected domain.

CPU Performance Monitoring

      Central Processing Unit (CPU) performance monitoring hardware
typically counts occurrences of performance-related events, such as
clock cycles, instructions executed and cache misses.  These counts
accumulate in hardware and/or software counters, until they are read
out and processed into meaningful performance parameters.  At times,
it is desirable to control whether the counters are actively counting
(running).  For instance, one may be interested only in the
performance parameters of one process on a computer which supports
multiple processes.  When the process of interest is executing, the
counters should be running, and when any other process is executing,
the counters should be stopped.  Or one may be interested in the
performance of only a portion of one process, or two processes, or
any other software domain.  The computer must have a facility for
signalling the monitoring hardware that software has transioned into,
or out of, a domain of interest.  This can be done with software
hooks.

      A software hook produces a signalling operation which is used
to inform some concurrent monitorization process of entry into a new
section of software.  In the present case, signalling is accomplished
by asserting the hook value on the Micro Channel* bus.  The software
entity responsible for initiating the signalling is called a
"software hook".

      Software hooks are already integrated into the AIX* operating
system.  Also, the software hooks can be inserted into the user's
program.  When the computer encounters a hook, it sends the hook's
value and other information to an input/output device, where it is
stored for post-processing or read by monitoring hardware.  When
monitoring hardware receives a hook, it must determine as rapidly as
possible whether the hook indicates that the counters should be
running, stopped, or continue as they are.

      The simplest hook scheme would be to have only two hook values,
one for stop and one for run.  When a hook is received in this
scheme, the monitoring hardware can very quickly determine the
desired action.  The drawback to this scheme is that the software
must be modified and recompiled every time the user desires to change
the number and/or location of the run/stop hooks.  This is especially
difficult if the the hooks are in the operating system, where
recompiling is not generally an option.

The Portable Hardware Performance Monitor

The Portable Hardware Performance Monitor (PHPM) is designed to do
non-intrusive CPU performance monitoring of the IBM RISC/System
6000*.  It is a Micro Channel adapter, residing in the computer it is
monitoring.  The PHPM receives CPU pin signals via a...