File tree Expand file tree Collapse file tree 1 file changed +71
-0
lines changed
Expand file tree Collapse file tree 1 file changed +71
-0
lines changed Original file line number Diff line number Diff line change 1+ programs :
2+ - name : mcevents
3+ metrics :
4+ counters :
5+ - name : mc_event_total
6+ help : Machine check events
7+ table : mc_counts
8+ labels :
9+ - name : type
10+ size : 4
11+ decoders :
12+ - name : uint
13+ - name : static_map
14+ static_map :
15+ 0 : err_corrected
16+ 1 : err_uncorrected
17+ 2 : err_deferred
18+ 3 : err_fatal
19+ 4 : info
20+ - name : middle_layer
21+ size : 1
22+ decoders :
23+ - name : uint
24+ - name : top_layer
25+ size : 1
26+ decoders :
27+ - name : uint
28+ - name : lower_layer
29+ size : 1
30+ decoders :
31+ - name : uint
32+ - name : mc_index
33+ size : 1
34+ decoders :
35+ - name : uint
36+ - name : label
37+ size : 100
38+ decoders :
39+ - name : string
40+ - name : msg
41+ size : 32
42+ decoders :
43+ - name : string
44+ tracepoints :
45+ ras:mc_event : tracepoint__ras__mc_event
46+ code : |
47+ #include <uapi/linux/ptrace.h>
48+ #include <linux/types.h>
49+ struct key_t {
50+ uint type;
51+ s8 middle_layer;
52+ s8 top_layer;
53+ s8 lower_layer;
54+ s8 mc_index;
55+ char label[100];
56+ char msg[32];
57+ };
58+ BPF_HASH(mc_counts, struct key_t, u64);
59+
60+ // Generates function tracepoint__ras__mc_event
61+ TRACEPOINT_PROBE(ras, mc_event) {
62+ struct key_t key = { .type = args->error_type,
63+ .middle_layer = args->middle_layer,
64+ .top_layer = args->top_layer,
65+ .lower_layer = args->lower_layer,
66+ .mc_index = args->mc_index};
67+ TP_DATA_LOC_READ_CONST(key.label,label,100)
68+ TP_DATA_LOC_READ_CONST(key.msg,msg,32)
69+ mc_counts.increment(key);
70+ return 0;
71+ }
You can’t perform that action at this time.
0 commit comments