I use Opteron hardware performance counters extensively myself. The table of
counters that ships with Solaris is missing a few, basically the ones that
were added with RevD and RevE processors, and the undocumented ones. I created
my own table by editing opteron_pcbe.c from OpenSolaris source, which I compile
to create a replacement /usr/kernel/pcbe/amd64/pcbe.AuthenticAMD.15
A 4100 system we have in our lab,
- ncpus = 2, clock frequency 2593 MHz.
- memory: 524174 pages @ 4096 bytes = 2047 MB.
shows that Analyzer can access the following hardware counters without modification to the Solaris driver:
FP_dispatched_fpu_ops[/{0|1|2|3}],1000003 (events)
FP_cycles_no_fpu_ops_retired[/{0|1|2|3}],1000003 (CPU-cycles)
FP_dispatched_fpu_ops_ff[/{0|1|2|3}],1000003 (events)
LS_seg_reg_load[/{0|1|2|3}],1000003 (load-store events)
LS_uarch_resync_self_modify[/{0|1|2|3}],1000003 (events)
LS_uarch_resync_snoop[/{0|1|2|3}],1000003 (not-program-related events)
LS_buffer_2_full[/{0|1|2|3}],1000003 (events)
LS_locked_operation[/{0|1|2|3}],1000003 (events)
LS_uarch_late_cancel_op[/{0|1|2|3}],1000003 (events)
LS_retired_cflush[/{0|1|2|3}],1000003 (events)
LS_retired_cpuid[/{0|1|2|3}],1000003 (events)
DC_access[/{0|1|2|3}],1000003 (load-store events)
DC_miss[/{0|1|2|3}],1000003 (load-store events)
DC_refill_from_L2[/{0|1|2|3}],1000003 (load-store events)
DC_refill_from_system[/{0|1|2|3}],1000003 (load-store events)
DC_copyback[/{0|1|2|3}],1000003 (load-store events)
DC_dtlb_L1_miss_L2_hit[/{0|1|2|3}],1000003 (load-store events)
DC_dtlb_L1_miss_L2_miss[/{0|1|2|3}],1000003 (load-store events)
DC_misaligned_data_ref[/{0|1|2|3}],1000003 (load-store events)
DC_uarch_late_cancel_access[/{0|1|2|3}],1000003 (events)
DC_uarch_early_cancel_access[/{0|1|2|3}],1000003 (events)
DC_1bit_ecc_error_found[/{0|1|2|3}],1000003 (events)
DC_dispatched_prefetch_instr[/{0|1|2|3}],1000003 (events)
DC_dcache_accesses_by_locks[/{0|1|2|3}],1000003 (events)
BU_cpu_clk_unhalted[/{0|1|2|3}],1000003 (CPU-cycles)
BU_internal_L2_req[/{0|1|2|3}],1000003 (load-store events)
BU_fill_req_missed_L2[/{0|1|2|3}],1000003 (load-store events)
BU_fill_into_L2[/{0|1|2|3}],1000003 (load-store events)
IC_fetch[/{0|1|2|3}],1000003 (events)
IC_miss[/{0|1|2|3}],1000003 (events)
IC_refill_from_L2[/{0|1|2|3}],1000003 (events)
IC_refill_from_system[/{0|1|2|3}],1000003 (events)
IC_itlb_L1_miss_L2_hit[/{0|1|2|3}],1000003 (events)
IC_itlb_L1_miss_L2_miss[/{0|1|2|3}],1000003 (events)
IC_uarch_resync_snoop[/{0|1|2|3}],1000003 (not-program-related events)
IC_instr_fetch_stall[/{0|1|2|3}],1000003 (CPU-cycles)
IC_return_stack_hit[/{0|1|2|3}],1000003 (events)
IC_return_stack_overflow[/{0|1|2|3}],1000003 (events)
FR_retired_x86_instr_w_excp_intr[/{0|1|2|3}],1000003 (events)
FR_retired_uops[/{0|1|2|3}],1000003 (events)
FR_retired_branches_w_excp_intr[/{0|1|2|3}],1000003 (events)
FR_retired_branches_mispred[/{0|1|2|3}],1000003 (events)
FR_retired_taken_branches[/{0|1|2|3}],1000003 (events)
FR_retired_taken_branches_mispred[/{0|1|2|3}],1000003 (events)
FR_retired_far_ctl_transfer[/{0|1|2|3}],1000003 (events)
FR_retired_resyncs[/{0|1|2|3}],1000003 (events)
FR_retired_near_rets[/{0|1|2|3}],1000003 (events)
FR_retired_near_rets_mispred[/{0|1|2|3}],1000003 (events)
FR_retired_taken_branches_mispred_addr_miscomp[/{0|1|2|3}],1000003 (events)
FR_retired_fpu_instr[/{0|1|2|3}],1000003 (events)
FR_retired_fastpath_double_op_instr[/{0|1|2|3}],1000003 (events)
FR_intr_masked_cycles[/{0|1|2|3}],1000003 (CPU-cycles)
FR_intr_masked_while_pending_cycles[/{0|1|2|3}],1000003 (CPU-cycles)
FR_taken_hardware_intrs[/{0|1|2|3}],1000003 (events)
FR_nothing_to_dispatch[/{0|1|2|3}],1000003 (events)
FR_dispatch_stalls[/{0|1|2|3}],1000003 (CPU-cycles)
FR_dispatch_stall_branch_abort_to_retire[/{0|1|2|3}],1000003 (CPU-cycles)
FR_dispatch_stall_serialization[/{0|1|2|3}],1000003 (CPU-cycles)
FR_dispatch_stall_segment_load[/{0|1|2|3}],1000003 (CPU-cycles)
FR_dispatch_stall_reorder_buffer_full[/{0|1|2|3}],1000003 (CPU-cycles)
FR_dispatch_stall_resv_stations_full[/{0|1|2|3}],1000003 (CPU-cycles)
FR_dispatch_stall_fpu_full[/{0|1|2|3}],1000003 (CPU-cycles)
FR_dispatch_stall_ls_full[/{0|1|2|3}],1000003 (CPU-cycles)
FR_dispatch_stall_waiting_all_quiet[/{0|1|2|3}],1000003 (CPU-cycles)
FR_dispatch_stall_far_ctl_trsfr_resync_branch_pend[/{0|1|2|3}],1000003 (CPU-cycles)
FR_fpu_exception[/{0|1|2|3}],1000003 (events)
FR_num_brkpts_dr0[/{0|1|2|3}],1000003 (events)
FR_num_brkpts_dr1[/{0|1|2|3}],1000003 (events)
FR_num_brkpts_dr2[/{0|1|2|3}],1000003 (events)
FR_num_brkpts_dr3[/{0|1|2|3}],1000003 (events)
NB_mem_ctrlr_page_access[/{0|1|2|3}],1000003 (load-store events)
NB_mem_ctrlr_page_table_overflow[/{0|1|2|3}],1000003 (load-store events)
NB_mem_ctrlr_dram_cmd_slots_missed[/{0|1|2|3}],1000003 (load-store CPU-cycles)
NB_mem_ctrlr_turnaround[/{0|1|2|3}],1000003 (CPU-cycles)
NB_mem_ctrlr_bypass_counter_saturation[/{0|1|2|3}],1000003 (events)
NB_sized_commands[/{0|1|2|3}],1000003 (events)
NB_probe_result[/{0|1|2|3}],1000003 (events)
NB_ht_bus0_bandwidth[/{0|1|2|3}],1000003 (events)
NB_ht_bus1_bandwidth[/{0|1|2|3}],1000003 (events)
NB_ht_bus2_bandwidth[/{0|1|2|3}],1000003 (events)