rseq_stats
rseq_stat_inc(rseq_stats.s_revoked);
rseq_stat_inc(rseq_stats.s_granted);
DECLARE_PER_CPU(struct rseq_stats, rseq_stats);
rseq_stat_inc(rseq_stats.fixup);
rseq_stat_inc(rseq_stats.clear);
rseq_stat_inc(rseq_stats.cs);
rseq_stat_inc(rseq_stats.fixup);
rseq_stat_inc(rseq_stats.clear);
rseq_stat_inc(rseq_stats.ids);
rseq_stat_inc(rseq_stats.fastpath);
rseq_stat_inc(rseq_stats.exit);
rseq_stat_inc(rseq_stats.exit);
DEFINE_PER_CPU(struct rseq_stats, rseq_stats);
struct rseq_stats stats = { };
stats.exit += data_race(per_cpu(rseq_stats.exit, cpu));
stats.signal += data_race(per_cpu(rseq_stats.signal, cpu));
stats.slowpath += data_race(per_cpu(rseq_stats.slowpath, cpu));
stats.fastpath += data_race(per_cpu(rseq_stats.fastpath, cpu));
stats.ids += data_race(per_cpu(rseq_stats.ids, cpu));
stats.cs += data_race(per_cpu(rseq_stats.cs, cpu));
stats.clear += data_race(per_cpu(rseq_stats.clear, cpu));
stats.fixup += data_race(per_cpu(rseq_stats.fixup, cpu));
stats.s_granted += data_race(per_cpu(rseq_stats.s_granted, cpu));
stats.s_expired += data_race(per_cpu(rseq_stats.s_expired, cpu));
stats.s_revoked += data_race(per_cpu(rseq_stats.s_revoked, cpu));
stats.s_yielded += data_race(per_cpu(rseq_stats.s_yielded, cpu));
stats.s_aborted += data_race(per_cpu(rseq_stats.s_aborted, cpu));
rseq_stat_inc(rseq_stats.slowpath);
rseq_stat_inc(rseq_stats.signal);
rseq_stat_inc(rseq_stats.s_expired);
rseq_stat_inc(rseq_stats.s_yielded);
rseq_stat_inc(rseq_stats.s_aborted);