pmconvscale(3) — Linux manual page

NAME | C SYNOPSIS | DESCRIPTION | DIAGNOSTICS | SEE ALSO | COLOPHON

PMCONVSCALE(3) Library Functions Manual PMCONVSCALE(3)

NAME top

 pmConvScale - rescale a performance metric value

C SYNOPSIS top

 #include <pcp/pmapi.h>
 int pmConvScale(int type, const pmAtomValue *ival,
 const pmUnits *iunit, pmAtomValue *oval,
 const pmUnits *ounit);
 cc ... -lpcp

DESCRIPTION top

 All performance metric values may be encoded in a pmAtomValue
 union, defined as follows;
 typedef union {
 __int32_t l; /* 32-bit signed */
 __uint32_t ul; /* 32-bit unsigned */
 __int64_t ll; /* 64-bit signed */
 __uint64_t ull; /* 64-bit unsigned */
 float f; /* 32-bit floating point */
 double d; /* 64-bit floating point */
 char *cp; /* char ptr */
 pmValueBlock *vbp; /* pmValueBlock ptr */
 } pmAtomValue;
 The encoding of a performance metric's dimensionality and scale
 uses a pmUnits structure; see pmLookupDesc(3).
 Given a performance metric value pointed to by ival multiply it by
 a scale factor and return the value in oval. The scaling takes
 place from the units defined by iunit into the units defined by
 ounit. Both input and output units must have the same dimension‐
 ality.
 The performance metric type for both input and output values is
 determined by type, the value for which is typically extracted
 from a pmDesc structure, following a call to pmLookupDesc(3) for a
 particular performance metric.
 pmConvScale is most useful when values returned via pmFetch(3),
 (and possibly extracted using pmExtractValue(3)) need to be nor‐
 malized into some canonical scale and units for the purposes of
 computation.
 As a special case, if all components of the dimension are zero,
 then this is treated as synonymous with a ``count'' dimension of
 one, and so the ``count'' scale components determine the relative
 scaling. This accommodates the case where performance metrics are
 dimensionless, without special case handling on the part of the
 caller.

DIAGNOSTICS top

 PM_ERR_CONV
 iunit and ounit have different dimensionality, or have in‐
 appropriate type
 PM_ERR_UNIT
 Inappropriate iunit or ounit parameter

SEE ALSO top

 PMAPI(3), pmAtomStr(3), pmExtractValue(3), pmFetch(3),
 pmLookupDesc(3), pmPrintValue(3), pmTypeStr(3) and pmUnitsStr(3).

COLOPHON top

 This page is part of the PCP (Performance Co-Pilot) project. In‐
 formation about the project can be found at ⟨http://www.pcp.io/⟩.
 If you have a bug report for this manual page, send it to
 pcp@groups.io. This page was obtained from the project's upstream
 Git repository ⟨https://github.com/performancecopilot/pcp.git⟩ on
 2025年08月11日. (At that time, the date of the most recent commit
 that was found in the repository was 2025年08月11日.) If you discover
 any rendering problems in this HTML version of the page, or you
 believe there is a better or more up-to-date source for the page,
 or you have corrections or improvements to the information in this
 COLOPHON (which is not part of the original manual page), send a
 mail to man-pages@man7.org
Performance Co-Pilot PCP PMCONVSCALE(3)

Pages that refer to this page: pcpintro(3), pmapi(3), pmatomstr(3), pmextractvalue(3), pmlookupdesc(3), pmparseunitsstr(3), pmprintvalue(3), pmsemstr(3), pmtypestr(3), pmunitsstr(3)



HTML rendering created 2025年09月06日 by Michael Kerrisk, author of The Linux Programming Interface.

For details of in-depth Linux/UNIX system programming training courses that I teach, look here.

Hosting by jambit GmbH.

Cover of TLPI

Web Analytics Made Easy - StatCounter

AltStyle によって変換されたページ (->オリジナル) /