context_tracking.c (24a9c54182b3758801b8ca6c8c237cc2ff654732) context_tracking.c (e67198cc05b8ecbb7b8e2d8ef9fb5c8d26821873)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Context tracking: Probe on high level context boundaries such as kernel
4 * and userspace. This includes syscalls and exceptions entry/exit.
5 *
6 * This is used by RCU to remove its dependency on the timer tick while a CPU
7 * runs in userspace.
8 *

--- 8 unchanged lines hidden (view full) ---

17
18#include <linux/context_tracking.h>
19#include <linux/rcupdate.h>
20#include <linux/sched.h>
21#include <linux/hardirq.h>
22#include <linux/export.h>
23#include <linux/kprobes.h>
24
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Context tracking: Probe on high level context boundaries such as kernel
4 * and userspace. This includes syscalls and exceptions entry/exit.
5 *
6 * This is used by RCU to remove its dependency on the timer tick while a CPU
7 * runs in userspace.
8 *

--- 8 unchanged lines hidden (view full) ---

17
18#include <linux/context_tracking.h>
19#include <linux/rcupdate.h>
20#include <linux/sched.h>
21#include <linux/hardirq.h>
22#include <linux/export.h>
23#include <linux/kprobes.h>
24
25
26#ifdef CONFIG_CONTEXT_TRACKING_IDLE
27noinstr void ct_idle_enter(void)
28{
29 rcu_idle_enter();
30}
31EXPORT_SYMBOL_GPL(ct_idle_enter);
32
33void ct_idle_exit(void)
34{
35 rcu_idle_exit();
36}
37EXPORT_SYMBOL_GPL(ct_idle_exit);
38#endif /* #ifdef CONFIG_CONTEXT_TRACKING_IDLE */
39
25#ifdef CONFIG_CONTEXT_TRACKING_USER
26
27#define CREATE_TRACE_POINTS
28#include <trace/events/context_tracking.h>
29
30DEFINE_STATIC_KEY_FALSE(context_tracking_key);
31EXPORT_SYMBOL_GPL(context_tracking_key);
32

--- 235 unchanged lines hidden ---
40#ifdef CONFIG_CONTEXT_TRACKING_USER
41
42#define CREATE_TRACE_POINTS
43#include <trace/events/context_tracking.h>
44
45DEFINE_STATIC_KEY_FALSE(context_tracking_key);
46EXPORT_SYMBOL_GPL(context_tracking_key);
47

--- 235 unchanged lines hidden ---