HP Caliper User Guide Release 5.5 (5900-2351, August 2012)

HyperThreading (formally called Hyper-Threading Technology) provides the ability for a processor
to create an additional logical processor that might allow additional efficiencies of processing.
For example, a dual-core Itanium 2 processor with HyperThreading active provides four logical
processors, two on each core. An Itanium 9300 quad-core processor with HyperThreading active
provides eight logical processors. This allows the operating system to schedule two threads or
processes simultaneously. The effect that HyperThreading has on performance depends heavily
on the application. HyperThreading can increase the overall throughput of an application, but
individual processes are usually slowed down by it.
If you use this event set, the default is to make the measurements irrespective of CPU operating
state (that is, user, system, or interrupt states). By default, the idle state is not included in the
measurement. You can use command-line options to limit the scope of the measurement. Specifically,
you can:
Limit measurement to a specific privilege level: -m event_set[:all|user|kernel]
Include idle: --exclude-idle False
Exclude the interruption state: --measure-on-interrupts off
Only measure the interruption state: --measure-on-interrupts only
The metrics available from this event set are described in the following sections. These descriptions
do not take into account any command-line options you might use.
Metrics Available for Intel Itanium 2 and dual core Itanium 2 processor systems
The metrics are:
TS Per Sec
Number of thread switches each second.
TS Per Kinst
Number of thread switches every 1000 instructions.
L3miss
Percentage of all thread switches that were caused by a miss in the Level 3 cache. A large
value indicates a “good” use of HyperThreading: while this process is waiting on memory,
another process can execute.
Timer
Percentage of all thread switches due to the “fair share” timer. A large value indicates a
poor” use of HyperThreading: both processes are competing for processor execution cycles.
Hint
Percentage of all thread switches that were triggered by the “hint@pause” instruction. This is
when the measured process voluntarily gives up the processor because it is about to wait for
something (like a mutex). A non-zero value indicates a “good” use of HyperThreading: this
process has natural “idle” time that another process can make use of.
Other
Percentage of all other reasons that thread switches occurred.
0–3
Percentage of thread switches that were triggered after the processor had stalled for 0 to 3
cycles. A large value indicates efficient HyperThreading.
4–15
Percentage of thread switches that were triggered after the processor had stalled for 4 to 15
cycles. A non-zero value represents wasted processor cycles.
16–63
Percentage of thread switches that were triggered after the processor had stalled for 16 to
63 cycles. A non-zero value represents wasted processor cycles.
262 Event Set Descriptions for CPU Metrics