Skip to content

Commit b5b8282

Browse files
KAGA-KOKOPeter Zijlstra
authored andcommitted
rseq: Add statistics for time slice extensions
Extend the quick statistics with time slice specific fields. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://patch.msgid.link/20251215155708.795202254@linutronix.de
1 parent f8380f9 commit b5b8282

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

include/linux/rseq_entry.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ struct rseq_stats {
1515
unsigned long cs;
1616
unsigned long clear;
1717
unsigned long fixup;
18+
unsigned long s_granted;
19+
unsigned long s_expired;
20+
unsigned long s_revoked;
21+
unsigned long s_yielded;
22+
unsigned long s_aborted;
1823
};
1924

2025
DECLARE_PER_CPU(struct rseq_stats, rseq_stats);

kernel/rseq.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,13 @@ static int rseq_stats_show(struct seq_file *m, void *p)
138138
stats.cs += data_race(per_cpu(rseq_stats.cs, cpu));
139139
stats.clear += data_race(per_cpu(rseq_stats.clear, cpu));
140140
stats.fixup += data_race(per_cpu(rseq_stats.fixup, cpu));
141+
if (IS_ENABLED(CONFIG_RSEQ_SLICE_EXTENSION)) {
142+
stats.s_granted += data_race(per_cpu(rseq_stats.s_granted, cpu));
143+
stats.s_expired += data_race(per_cpu(rseq_stats.s_expired, cpu));
144+
stats.s_revoked += data_race(per_cpu(rseq_stats.s_revoked, cpu));
145+
stats.s_yielded += data_race(per_cpu(rseq_stats.s_yielded, cpu));
146+
stats.s_aborted += data_race(per_cpu(rseq_stats.s_aborted, cpu));
147+
}
141148
}
142149

143150
seq_printf(m, "exit: %16lu\n", stats.exit);
@@ -148,6 +155,13 @@ static int rseq_stats_show(struct seq_file *m, void *p)
148155
seq_printf(m, "cs: %16lu\n", stats.cs);
149156
seq_printf(m, "clear: %16lu\n", stats.clear);
150157
seq_printf(m, "fixup: %16lu\n", stats.fixup);
158+
if (IS_ENABLED(CONFIG_RSEQ_SLICE_EXTENSION)) {
159+
seq_printf(m, "sgrant: %16lu\n", stats.s_granted);
160+
seq_printf(m, "sexpir: %16lu\n", stats.s_expired);
161+
seq_printf(m, "srevok: %16lu\n", stats.s_revoked);
162+
seq_printf(m, "syield: %16lu\n", stats.s_yielded);
163+
seq_printf(m, "sabort: %16lu\n", stats.s_aborted);
164+
}
151165
return 0;
152166
}
153167

0 commit comments

Comments
 (0)