Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B, System Programming Guide Part 2

Table Of Contents
A-90 Vol. 3
PERFORMANCE-MONITORING EVENTS
Some instructions are decoded into longer
sequences such as repeat instructions,
floating point transcendental instructions,
and assists. In some cases micro-op
sequences are fused or whole instructions
are fused into one micro-op.
See other UOPS_RETIRED events for
differentiating retired fused and non-
fused micro-ops.
C3H 01H MACHINE_
NUKES.SMC
Self-Modifying
Code detected
This event counts the number of times
that a program writes to a code section.
Self-modifying code causes a sever
penalty in all Intel 64 and IA-32
processors.
C3H 04H MACHINE_NUKES.
MEM_ORDER
Execution
pipeline restart
due to memory
ordering
conflict or
memory
disambiguation
misprediction
This event counts the number of times the
pipeline is restarted due to either multi-
threaded memory ordering conflicts or
memory disambiguation misprediction.
A multi-threaded memory ordering conflict
occurs when a store, which is executed in
another core, hits a load that is executed
out of order in this core but not yet retired.
As a result, the load needs to be restarted
to satisfy the memory ordering model.
See Chapter 7, “Multiple-Processor
Management” in the Intel® 64 and IA-32
Architectures Software Developer’s
Manual, Volume 3A.
To count memory disambiguation
mispredictions, use the event
MEMORY_DISAMBIGUATION.RESET.
C4H 00H BR_INST_RETIRED.
ANY
Retired branch
instructions
This event counts the number of branch
instructions retired. This is an architectural
performance event.
C4H 01H BR_INST_RETIRED.
PRED_NOT_
TAKEN
Retired branch
instructions
that were
predicted not-
taken
This event counts the number of branch
instructions retired that were correctly
predicted to be not-taken.
Table A-6. Non-Architectural Performance Events
in Processors Based on Intel Core Microarchitecture (Contd.)
Event
Num
Umask
Value Event Name Definition
Description and
Comment