ANDROID: fix incorrect TRACE_INCLUDE_PATH in sched/build_policy.c
The TRACE_INCLUDE_PATH is used by the tracing system to do
multiple inclusions of the trace related header for events.
In the upstream kernel, this normally points to "trace/events",
however since Android leverages the tracing system to implement
vendor hooks, the hook related headers set TRACE_INCLUDE_PATH
to "trace/hooks".
Since several schedule "c" files are now #include'd by
sched/build_policy.c, it is possible for the TRACE_INCLUDE_PATH
to point to the wrong path. For example, here is a fragment of
build_policy.c:
#include "cputime.c"
#include "deadline.c"
#ifdef CONFIG_SCHED_CLASS_EXT
# include "ext.c"
#endif
if cputime.c has an inclusion of a hook, then TRACE_INCLUDE_PATH
may be set to "trace/hooks" when ext.c is included. This results
in errors like:
include/trace/define_trace.h:95:42: fatal error: trace/hooks/sched_ext.h: No such file or directory
Fix by #undef'ing TRACE_INCLUDE_PATH after inclusion of a hook
header for C files that are #include'd in sched/build_policy.c.
There is a related issue with CREATE_TRACE_POINTS which also
needs to be #undef'd if set by the included C file.
Fixes: 7f62740112 ("ANDROID: add support for vendor hooks")
Change-Id: I84fadfbba3d210d0d932a14fcfa5620a412992a9
Signed-off-by: Todd Kjos <tkjos@google.com>
This commit is contained in:
committed by
Treehugger Robot
parent
1cf5180bc7
commit
24d20c9118
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
#include <linux/cpufreq_times.h>
|
||||
#include <trace/hooks/sched.h>
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
|
||||
#ifdef CONFIG_VIRT_CPU_ACCOUNTING_NATIVE
|
||||
#include <asm/cputime.h>
|
||||
|
||||
@@ -1003,6 +1003,7 @@ static struct kobject *scx_root_kobj;
|
||||
|
||||
#define CREATE_TRACE_POINTS
|
||||
#include <trace/events/sched_ext.h>
|
||||
#undef CREATE_TRACE_POINTS
|
||||
|
||||
static void process_ddsp_deferred_locals(struct rq *rq);
|
||||
static void scx_bpf_kick_cpu(s32 cpu, u64 flags);
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include <trace/hooks/sched.h>
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
|
||||
int sched_rr_timeslice = RR_TIMESLICE;
|
||||
/* More than 4 hours if BW_SHIFT equals 20. */
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "autogroup.h"
|
||||
|
||||
#include <trace/hooks/sched.h>
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
|
||||
static inline int __normal_prio(int policy, int rt_prio, int nice)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user