Skip to content

Commit a2e6fa0

Browse files
authored
Merge pull request #83 from AlexZzz/mcevent
Add machine check events tracing example
2 parents d2072dd + d62c59f commit a2e6fa0

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

examples/mcevents.yaml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
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+
}

0 commit comments

Comments
 (0)