#ifndef _LINUX_CONTEXT_TRACKING_STATE_H #define _LINUX_CONTEXT_TRACKING_STATE_H #include <linux/percpu.h> #include <linux/static_key.h> struct context_tracking { /* * When active is false, probes are unset in order * to minimize overhead: TIF flags are cleared * and calls to user_enter/exit are ignored. This * may be further optimized using static keys. */ bool active; int recursion; enum ctx_state { CONTEXT_DISABLED = -1, /* returned by ct_state() if unknown */ CONTEXT_KERNEL = 0, CONTEXT_USER, CONTEXT_GUEST, } state; }; #ifdef CONFIG_CONTEXT_TRACKING extern struct static_key_false context_tracking_enabled; DECLARE_PER_CPU(struct context_tracking, context_tracking);
static inline bool context_tracking_is_enabled(void) { return static_branch_unlikely(&context_tracking_enabled); }Contributors
Person | Tokens | Prop | Commits | CommitProp |
Frédéric Weisbecker | 15 | 93.75% | 1 | 50.00% |
Andrew Lutomirski | 1 | 6.25% | 1 | 50.00% |
Total | 16 | 100.00% | 2 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Frédéric Weisbecker | 17 | 100.00% | 2 | 100.00% |
Total | 17 | 100.00% | 2 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Frédéric Weisbecker | 19 | 100.00% | 3 | 100.00% |
Total | 19 | 100.00% | 3 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Frédéric Weisbecker | 12 | 100.00% | 1 | 100.00% |
Total | 12 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Frédéric Weisbecker | 12 | 100.00% | 1 | 100.00% |
Total | 12 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Rik Van Riel | 12 | 100.00% | 1 | 100.00% |
Total | 12 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Rik Van Riel | 12 | 100.00% | 1 | 100.00% |
Total | 12 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Frédéric Weisbecker | 132 | 79.52% | 5 | 55.56% |
Rik Van Riel | 26 | 15.66% | 2 | 22.22% |
Andrew Lutomirski | 8 | 4.82% | 2 | 22.22% |
Total | 166 | 100.00% | 9 | 100.00% |