@@ -533,46 +533,92 @@ end
533533alltids (pid = getpid ()) = parse .(typeof (pid), readdir (" /proc/$(pid) /task" ))
534534
535535# Event names are taken from the perf command.
536- const NAME_TO_EVENT = Dict (
537- # hardware events
538- " branch-instructions" => EventType (:hw , :branches ),
539- " branch-misses" => EventType (:hw , :branch_mispredicts ),
540- " cache-misses" => EventType (:hw , :cache_misses ),
541- " cache-references" => EventType (:hw , :cache_access ),
542- " cpu-cycles" => EventType (:hw , :cycles ),
543- " instructions" => EventType (:hw , :instructions ),
544- " stalled-cycles-backend" => EventType (:hw , :stalled_cycles_backend ),
545- " stalled-cycles-frontend" => EventType (:hw , :stalled_cycles_frontend ),
546-
547- # software events
548- " alignment-faults" => EventType (:sw , :alignment_faults ),
549- " bpf-output" => EventType (:sw , :bpf_output ),
550- " context-switches" => EventType (:sw , :ctx_switches ),
551- " cpu-clock" => EventType (:sw , :cpu_clock ),
552- " cpu-migrations" => EventType (:sw , :cpu_migrations ),
553- " dummy" => EventType (:sw , :dummy ),
554- " emulation-faults" => EventType (:sw , :emulation_faults ),
555- " major-faults" => EventType (:sw , :major_page_faults ),
556- " minor-faults" => EventType (:sw , :minor_page_faults ),
557- " page-faults" => EventType (:sw , :page_faults ),
558- " task-clock" => EventType (:sw , :task_clock ),
559-
560- # hardware cache events
561- " L1-dcache-load-misses" => EventType (:cache , :L1_data , :read , :miss ),
562- " L1-dcache-loads" => EventType (:cache , :L1_data , :read , :access ),
563- " L1-dcache-store-misses" => EventType (:cache , :L1_data , :write , :miss ),
564- " L1-dcache-stores" => EventType (:cache , :L1_data , :write , :access ),
565- " L1-icache-load-misses" => EventType (:cache , :L1_insn , :read , :miss ),
566- " L1-icache-loads" => EventType (:cache , :L1_insn , :read , :access ),
567- " LLC-load-misses" => EventType (:cache , :LLC , :read , :miss ),
568- " LLC-loads" => EventType (:cache , :LLC , :read , :access ),
569- " LLC-store-misses" => EventType (:cache , :LLC , :write , :miss ),
570- " LLC-stores" => EventType (:cache , :LLC , :write , :access ),
571- " dTLB-load-misses" => EventType (:cache , :TLB_data , :read , :miss ),
572- " dTLB-loads" => EventType (:cache , :TLB_data , :read , :access ),
573- " iTLB-load-misses" => EventType (:cache , :TLB_insn , :read , :miss ),
574- " iTLB-loads" => EventType (:cache , :TLB_insn , :read , :access ),
575- )
536+ const NAME_TO_EVENT = let
537+ d = Dict (
538+ # hardware events
539+ " branch-instructions" => EventType (:hw , :branches ),
540+ " branch-misses" => EventType (:hw , :branch_mispredicts ),
541+ " cache-misses" => EventType (:hw , :cache_misses ),
542+ " cache-references" => EventType (:hw , :cache_access ),
543+ " cpu-cycles" => EventType (:hw , :cycles ),
544+ " instructions" => EventType (:hw , :instructions ),
545+ " stalled-cycles-backend" => EventType (:hw , :stalled_cycles_backend ),
546+ " stalled-cycles-frontend" => EventType (:hw , :stalled_cycles_frontend ),
547+
548+ # software events
549+ " alignment-faults" => EventType (:sw , :alignment_faults ),
550+ " bpf-output" => EventType (:sw , :bpf_output ),
551+ " context-switches" => EventType (:sw , :ctx_switches ),
552+ " cpu-clock" => EventType (:sw , :cpu_clock ),
553+ " cpu-migrations" => EventType (:sw , :cpu_migrations ),
554+ " dummy" => EventType (:sw , :dummy ),
555+ " emulation-faults" => EventType (:sw , :emulation_faults ),
556+ " major-faults" => EventType (:sw , :major_page_faults ),
557+ " minor-faults" => EventType (:sw , :minor_page_faults ),
558+ " page-faults" => EventType (:sw , :page_faults ),
559+ " task-clock" => EventType (:sw , :task_clock ),
560+
561+ # hardware cache events
562+ " L1-dcache-load-misses" => EventType (:cache , :L1_data , :read , :miss ),
563+ " L1-dcache-loads" => EventType (:cache , :L1_data , :read , :access ),
564+ " L1-dcache-store-misses" => EventType (:cache , :L1_data , :write , :miss ),
565+ " L1-dcache-stores" => EventType (:cache , :L1_data , :write , :access ),
566+ " L1-icache-load-misses" => EventType (:cache , :L1_insn , :read , :miss ),
567+ " L1-icache-loads" => EventType (:cache , :L1_insn , :read , :access ),
568+ " LLC-load-misses" => EventType (:cache , :LLC , :read , :miss ),
569+ " LLC-loads" => EventType (:cache , :LLC , :read , :access ),
570+ " LLC-store-misses" => EventType (:cache , :LLC , :write , :miss ),
571+ " LLC-stores" => EventType (:cache , :LLC , :write , :access ),
572+ " dTLB-load-misses" => EventType (:cache , :TLB_data , :read , :miss ),
573+ " dTLB-loads" => EventType (:cache , :TLB_data , :read , :access ),
574+ " iTLB-load-misses" => EventType (:cache , :TLB_insn , :read , :miss ),
575+ " iTLB-loads" => EventType (:cache , :TLB_insn , :read , :access ),
576+ )
577+
578+ # Add aliases
579+ d[" branch" ] = d[" branch-instructions" ]
580+ d[" cpu" ] = d[" cpu-cycles" ]
581+ d[" idle-cycles-backend" ] = d[" stalled-cycles-backend" ]
582+ d[" idle-cycles-frontend" ] = d[" stalled-cycles-frontend" ]
583+ d[" migrations" ] = d[" cpu-migrations" ]
584+ d[" faults" ] = d[" page-faults" ]
585+ d[" cpu_atom/L1-dcache-loads/" ] = d[" L1-dcache-loads" ]
586+ d[" cpu_atom/L1-dcache-stores/" ] = d[" L1-dcache-stores" ]
587+ d[" cpu_atom/L1-icache-loads/" ] = d[" L1-icache-loads" ]
588+ d[" cpu_atom/L1-icache-load-misses/" ] = d[" L1-icache-load-misses" ]
589+ d[" cpu_atom/LLC-loads/" ] = d[" LLC-loads" ]
590+ d[" cpu_atom/LLC-load-misses/" ] = d[" LLC-load-misses" ]
591+ d[" cpu_atom/LLC-stores/" ] = d[" LLC-stores" ]
592+ d[" cpu_atom/LLC-store-misses/" ] = d[" LLC-store-misses" ]
593+ d[" cpu_atom/dTLB-loads/" ] = d[" dTLB-loads" ]
594+ d[" cpu_atom/dTLB-load-misses/" ] = d[" dTLB-load-misses" ]
595+ d[" cpu_atom/iTLB-load-misses/" ] = d[" iTLB-load-misses" ]
596+ d[" cpu_core/L1-dcache-loads/" ] = d[" L1-dcache-loads" ]
597+ d[" cpu_core/L1-dcache-load-misses/" ] = d[" L1-dcache-load-misses" ]
598+ d[" cpu_core/L1-dcache-stores/" ] = d[" L1-dcache-stores" ]
599+ d[" cpu_core/L1-icache-load-misses/" ] = d[" L1-icache-load-misses" ]
600+ d[" cpu_core/LLC-loads/" ] = d[" LLC-loads" ]
601+ d[" cpu_core/LLC-load-misses/" ] = d[" LLC-load-misses" ]
602+ d[" cpu_core/LLC-stores/" ] = d[" LLC-stores" ]
603+ d[" cpu_core/LLC-store-misses/" ] = d[" LLC-store-misses" ]
604+ d[" cpu_core/dTLB-loads/" ] = d[" dTLB-loads" ]
605+ d[" cpu_core/dTLB-load-misses/" ] = d[" dTLB-load-misses" ]
606+ d[" cpu_core/iTLB-load-misses/" ] = d[" iTLB-load-misses" ]
607+ d[" cpu_atom/branch-instructions/" ] = d[" branch-instructions" ]
608+ d[" cpu_atom/branch-misses/" ] = d[" branch-misses" ]
609+ d[" cpu_atom/cache-misses/" ] = d[" cache-misses" ]
610+ d[" cpu_atom/cache-references/" ] = d[" cache-references" ]
611+ d[" cpu_atom/cpu-cycles/" ] = d[" cpu-cycles" ]
612+ d[" cpu_atom/instructions/" ] = d[" instructions" ]
613+ d[" cpu_core/branch-instructions/" ] = d[" branch-instructions" ]
614+ d[" cpu_core/branch-misses/" ] = d[" branch-misses" ]
615+ d[" cpu_core/cache-misses/" ] = d[" cache-misses" ]
616+ d[" cpu_core/cache-references/" ] = d[" cache-references" ]
617+ d[" cpu_core/cpu-cycles/" ] = d[" cpu-cycles" ]
618+ d[" cpu_core/instructions/" ] = d[" instructions" ]
619+
620+ d
621+ end
576622const EVENT_TO_NAME = Dict (event => name for (name, event) in NAME_TO_EVENT)
577623
578624function is_supported (event:: EventType ; space:: Symbol )
0 commit comments