PAPI  5.0.1.0
map-k8.c
Go to the documentation of this file.
00001 /****************************/
00002 /* THIS IS OPEN SOURCE CODE */
00003 /****************************/
00004 
00005 /* 
00006 * File:    map-k8.c
00007 * Author:  Harald Servat
00008 *          redcrash@gmail.com
00009 */
00010 
00011 #include "freebsd.h"
00012 #include "papiStdEventDefs.h"
00013 #include "map.h"
00014 
00015 
00016 /****************************************************************************
00017  K8 SUBSTRATE 
00018  K8 SUBSTRATE 
00019  K8 SUBSTRATE (aka Athlon64)
00020  K8 SUBSTRATE
00021  K8 SUBSTRATE
00022 ****************************************************************************/
00023 
00024 /*
00025     NativeEvent_Value_K8Processor must match K8Processor_info 
00026 */
00027 
00028 Native_Event_LabelDescription_t K8Processor_info[] =
00029 {
00030     { "k8-bu-cpu-clk-unhalted", "Count the number of clock cycles when the CPU is not in the HLT or STPCLCK states" },
00031     { "k8-bu-fill-request-l2-miss", "Count fill requests that missed in the L2 cache."},
00032     { "k8-bu-internal-l2-request", "Count internally generated requests to the L2 cache." },
00033     { "k8-dc-access", "Count data cache accesses including microcode scratchpad accesses."},
00034     { "k8-dc-copyback", "Count data cache copyback operations."},
00035     { "k8-dc-dcache-accesses-by-locks", "Count data cache accesses by lock instructions." },
00036     { "k8-dc-dispatched-prefetch-instructions", "Count the number of dispatched prefetch instructions." },
00037     { "k8-dc-l1-dtlb-miss-and-l2-dtlb-hit", "Count L1 DTLB misses that are L2 DTLB hits." },
00038     { "k8-dc-l1-dtlb-miss-and-l2-dtlb-miss", "Count L1 DTLB misses that are also misses in the L2 DTLB." },
00039     { "k8-dc-microarchitectural-early-cancel-of-an-access", "Count microarchitectural early cancels of data cache accesses." },
00040     { "k8-dc-microarchitectural-late-cancel-of-an-access", "Count microarchitectural late cancels of data cache accesses." },
00041     { "k8-dc-misaligned-data-reference", "Count misaligned data references." },
00042     { "k8-dc-miss", "Count data cache misses."},
00043     { "k8-dc-one-bit-ecc-error", "Count one bit ECC errors found by the scrubber." },
00044     { "k8-dc-refill-from-l2", "Count data cache refills from L2 cache." },
00045     { "k8-dc-refill-from-system", "Count data cache refills from system memory." },
00046     { "k8-fp-dispatched-fpu-ops", "Count the number of dispatched FPU ops." },
00047     { "k8-fp-cycles-with-no-fpu-ops-retired", "Count cycles when no FPU ops were retired." },
00048     { "k8-fp-dispatched-fpu-fast-flag-ops", "Count dispatched FPU ops that use the fast flag interface." },
00049     { "k8-fr-decoder-empty", "Count cycles when there was nothing to dispatch." },
00050     { "k8-fr-dispatch-stalls", "Count all dispatch stalls." },
00051     { "k8-fr-dispatch-stall-for-segment-load", "Count dispatch stalls for segment loads." },
00052     { "k8-fr-dispatch-stall-for-serialization", "Count dispatch stalls for serialization." },
00053     { "k8-fr-dispatch-stall-from-branch-abort-to-retire", "Count dispatch stalls from branch abort to retiral." },
00054     { "k8-fr-dispatch-stall-when-fpu-is-full", "Count dispatch stalls when the FPU is full." },
00055     { "k8-fr-dispatch-stall-when-ls-is-full", "Count dispatch stalls when the load/store unit is full." },
00056     { "k8-fr-dispatch-stall-when-reorder-buffer-is-full", "Count dispatch stalls when the reorder buffer is full." },
00057     { "k8-fr-dispatch-stall-when-reservation-stations-are-full", "Count dispatch stalls when reservation stations are full." },
00058     { "k8-fr-dispatch-stall-when-waiting-for-all-to-be-quiet", "Count dispatch stalls when waiting for all to be quiet." },
00059     { "k8-fr-dispatch-stall-when-waiting-far-xfer-or-resync-branch-pending", "Count dispatch stalls when a far control transfer or a resync branch is pending." },
00060     { "k8-fr-fpu-exceptions", "Count FPU exceptions." },
00061     { "k8-fr-interrupts-masked-cycles", "Count cycles when interrupts were masked." },
00062     { "k8-fr-interrupts-masked-while-pending-cycles", "Count cycles while interrupts were masked while pending" },
00063     { "k8-fr-number-of-breakpoints-for-dr0", "Count the number of breakpoints for DR0." },
00064     { "k8-fr-number-of-breakpoints-for-dr1", "Count the number of breakpoints for DR1." },
00065     { "k8-fr-number-of-breakpoints-for-dr2", "Count the number of breakpoints for DR2." },
00066     { "k8-fr-number-of-breakpoints-for-dr3", "Count the number of breakpoints for DR3." },
00067     { "k8-fr-retired-branches", "Count retired branches including exceptions and interrupts." },
00068     { "k8-fr-retired-branches-mispredicted", "Count mispredicted retired branches." },
00069     { "k8-fr-retired-far-control-transfers", "Count retired far control transfers" },
00070     { "k8-fr-retired-fastpath-double-op-instructions", "Count retired fastpath double op instructions." },
00071     { "k8-fr-retired-fpu-instructions", "Count retired FPU instructions." },
00072     { "k8-fr-retired-near-returns", "Count retired near returns." },
00073     { "k8-fr-retired-near-returns-mispredicted", "Count mispredicted near returns." },
00074     { "k8-fr-retired-resyncs", "Count retired resyncs" },
00075     { "k8-fr-retired-taken-hardware-interrupts", "Count retired taken hardware interrupts."},
00076     { "k8-fr-retired-taken-branches", "Count retired taken branches." },
00077     { "k8-fr-retired-taken-branches-mispredicted", "Count retired taken branches that were mispredicted." },
00078     { "k8-fr-retired-taken-branches-mispredicted-by-addr-miscompare", "Count retired taken branches that were mispredicted only due to an address miscompare." },
00079     { "k8-fr-retired-uops", "Count retired uops." },
00080     { "k8-fr-retired-x86-instructions", "Count retired x86 instructions including exceptions and interrupts"},
00081     { "k8-ic-fetch", "Count instruction cache fetches." },
00082     { "k8-ic-instruction-fetch-stall", "Count cycles in stalls due to instruction fetch." },
00083     { "k8-ic-l1-itlb-miss-and-l2-itlb-hit", "Count L1 ITLB misses that are L2 ITLB hits." },
00084     { "k8-ic-l1-itlb-miss-and-l2-itlb-miss", "Count ITLB misses that miss in both L1 and L2 ITLBs." },
00085     { "k8-ic-microarchitectural-resync-by-snoop", "Count microarchitectural resyncs caused by snoops." },
00086     { "k8-ic-miss", "Count instruction cache misses." },
00087     { "k8-ic-refill-from-l2", "Count instruction cache refills from L2 cache." },
00088     { "k8-ic-refill-from-system", "Count instruction cache refills from system memory." },
00089     { "k8-ic-return-stack-hits", "Count hits to the return stack." },
00090     { "k8-ic-return-stack-overflow", "Count overflows of the return stack." },
00091     { "k8-ls-buffer2-full", "Count load/store buffer2 full events." },
00092     { "k8-ls-locked-operation", "Count locked operations." },
00093     { "k8-ls-microarchitectural-late-cancel", "Count microarchitectural late cancels of operations in the load/store unit" },
00094     { "k8-ls-microarchitectural-resync-by-self-modifying-code", "Count microarchitectural resyncs caused by self-modifying code." },
00095     { "k8-ls-microarchitectural-resync-by-snoop", "Count microarchitectural resyncs caused by snoops." },
00096     { "k8-ls-retired-cflush-instructions", "Count retired CFLUSH instructions." },
00097     { "k8-ls-retired-cpuid-instructions", "Count retired CPUID instructions." },
00098     { "k8-ls-segment-register-load", "Count segment register loads." },
00099     { "k8-nb-memory-controller-bypass-saturation", "Count memory controller bypass counter saturation events." },
00100     { "k8-nb-memory-controller-dram-slots-missed", "Count memory controller DRAM command slots missed (in MemClks)." },
00101     { "k8-nb-memory-controller-page-access-event", "Count memory controller page access events." },
00102     { "k8-nb-memory-controller-page-table-overflow", "Count memory control page table overflow events." },
00103     { "k8-nb-probe-result", "Count probe events." },
00104     { "k8-nb-sized-commands", "Count sized commands issued." },
00105     { "k8-nb-memory-controller-turnaround", "Count memory control turnaround events." },
00106     { "k8-nb-ht-bus0-bandwidth", "Count events on the HyperTransport(tm) bus #0" },
00107     { "k8-nb-ht-bus1-bandwidth", "Count events on the HyperTransport(tm) bus #1" },
00108     { "k8-nb-ht-bus2-bandwidth", "Count events on the HyperTransport(tm) bus #2" },
00109     /* Special counters with some masks activated */
00110     { "k8-dc-refill-from-l2,mask=+modified,+owner,+exclusive,+shared", "Count data cache refills from L2 cache (in MOES state)." },
00111     { "k8-dc-refill-from-l2,mask=+owner,+exclusive,+shared", "Count data cache refills from L2 cache (in OES state)." },
00112     { "k8-dc-refill-from-l2,mask=+modified", "Count data cache refills from L2 cache (in M state)." },
00113     { "k8-dc-refill-from-system,mask=+modified,+owner,+exclusive,+shared", "Count data cache refills from system memory (in MOES state)." },
00114     { "k8-dc-refill-from-system,mask=+owner,+exclusive,+shared", "Count data cache refills from system memory (in OES state)." },
00115     { "k8-dc-refill-from-system,mask=+modified", "Count data cache refills from system memory (in M state)." },
00116     { "k8-fp-dispatched-fpu-ops,mask=+multiply-pipe-junk-ops", "Count the number of dispatched FPU multiplies." },
00117     { "k8-fp-dispatched-fpu-ops,mask=+add-pipe-junk-ops", "Count the number of dispatched FPU adds." },
00118     { "k8-fp-dispatched-fpu-ops,mask=+multiply-pipe-junk-ops,+add-pipe-junk-ops", "Count the number of dispatched FPU adds and multiplies." },
00119     { NULL, NULL }
00120 };
00121 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines