QMC_INDOM(3) Library Functions Manual QMC_INDOM(3)
QmcIndom - container for a instance domain description
#include <QmcIndom.h> CC ... -lqmc -lpcp
A QmcIndom object represents a PMAPI(3) instance domain. This includes a description of all the instances in the instance domain. A.
QmcIndom::QmcIndom(int type, QmcDesc &desc); Calls pmGetInDom(3) and pmGetInDomArchive(3) for host and archive contexts to obtain the entire instance list for the instance domain of type and identified in desc.
The support of dynamic instance domains for live contexts is complex since many metrics may be referencing any of the instances in the domain. Therefore the instance list may be sparse as the position of instances in the list must be maintained.)). bool changed() const; Returns true if the instance domain may have changed in the last fetch. void newFetch(); Reset the flags that may have indicated that the instance domain had changed. This is called by QmcContext::fetch. void hasChanged(); Set the flags to indicate that the instance domain may have changed. This is called by QmcMetric::extractValues. int update(); Update the instance domain as described above. On subsequent calls, before the next fetch, this method will remove any instances that are no longer referenced without updating the instance list with a pmGetInDom(3) call. uint_t numInsts() const; Returns the number of instances that are not NULL. uint_t numActiveInsts() const; Returns the number of instances that are active according to the last QmcIndom::update call. uint_t listLen() const; Returns the length of the instance list, including NULL instances.
The algorithm for determining the most compact profile uses the number of instances (_instances.length()), the number of referenced instances (_count), the number of active instances (_numActive) and the number of referenced active instances (_numActiveRef). bool diffProfile() const; Returns true if the profile has potentially changed since the last call to QmcIndom::genProfile. int genProfile(); Generates a new profile for the instance domain. a PMAPI(3) error code is returned if the profile failed.
PMAPI(3), QMC(3), QmcContext(3), QmcDesc(3), QmcMetric(3), pmFetch(3), pmflush(3), pmGetInDom(3), pmGetInDomArchive(3) and pmprintf(3).
Error messages are generated using pmprintf(3) but are not flushed. It is the responsibility of the user to call pmflush(3) to output any messages. Additional diagnostics may be activated by adding DBG_TRACE_PMC and DBG_TRACE_INDOM to the global pmDebug.
User's have no control over the algorithm used to generate the profile. In the case of proc metrics, an implicit profile could be generated if all process instances are required, even though this will result in no values being returned in the fetch. SGI QMC_INDOM(3)
Pages that refer to this page: QMC(3), QmcContext(3)