Change how vendor hooks are instantiated to promote more complete structure definition in the ABI XML description without complicating hook definition for partners. We don't want to force partners to include all headers as part of the hook definition in include/trace/hooks/ since that causes extra headers to be included in source files that runs the risk of changing visibility resulting in CRC changes to KMI symbols. Instead continue the practice of using forward declarations in the hook header files. Instead of instantiating hook tracepoints globally in drivers/android/vendor_hooks.c, use subsystem-specific vendor_hooks.c. This avoids namespace collisions between internal header files and limits the exposure to the internal headers to the instantiation, not the call sites. In this patch, all of the scheduler related hooks are instantiated in kernel/sched/vendor_hooks.c which can cleanly include scheduler-related header files to provide full type visibility. Since this is being done on a KMI frozen branch, there are some __GENKSYMS__ tricks needed to preserve the existing CRC as we increase the number of fully typed structs. These tricks won't be needed when this is introduced on a non-KMI-frozen branch. With this patch, the number of undefined types was reduced from 108 to 68. Bug: 233047575 Signed-off-by: Todd Kjos <tkjos@google.com> Change-Id: Ife5a66c2968de73e3f6d05840411310611e2e175
41 lines
1.7 KiB
Makefile
41 lines
1.7 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
ifdef CONFIG_FUNCTION_TRACER
|
|
CFLAGS_REMOVE_clock.o = $(CC_FLAGS_FTRACE)
|
|
endif
|
|
|
|
# These files are disabled because they produce non-interesting flaky coverage
|
|
# that is not a function of syscall inputs. E.g. involuntary context switches.
|
|
KCOV_INSTRUMENT := n
|
|
|
|
# There are numerous data races here, however, most of them are due to plain accesses.
|
|
# This would make it even harder for syzbot to find reproducers, because these
|
|
# bugs trigger without specific input. Disable by default, but should re-enable
|
|
# eventually.
|
|
KCSAN_SANITIZE := n
|
|
|
|
ifneq ($(CONFIG_SCHED_OMIT_FRAME_POINTER),y)
|
|
# According to Alan Modra <alan@linuxcare.com.au>, the -fno-omit-frame-pointer is
|
|
# needed for x86 only. Why this used to be enabled for all architectures is beyond
|
|
# me. I suspect most platforms don't need this, but until we know that for sure
|
|
# I turn this off for IA-64 only. Andreas Schwab says it's also needed on m68k
|
|
# to get a correct value for the wait-channel (WCHAN in ps). --davidm
|
|
CFLAGS_core.o := $(PROFILING) -fno-omit-frame-pointer
|
|
endif
|
|
|
|
obj-y += core.o loadavg.o clock.o cputime.o
|
|
obj-y += idle.o fair.o rt.o deadline.o
|
|
obj-y += wait.o wait_bit.o swait.o completion.o
|
|
|
|
obj-$(CONFIG_SMP) += cpupri.o cpudeadline.o topology.o stop_task.o pelt.o
|
|
obj-$(CONFIG_SCHED_AUTOGROUP) += autogroup.o
|
|
obj-$(CONFIG_SCHEDSTATS) += stats.o
|
|
obj-$(CONFIG_SCHED_DEBUG) += debug.o
|
|
obj-$(CONFIG_CGROUP_CPUACCT) += cpuacct.o
|
|
obj-$(CONFIG_CPU_FREQ) += cpufreq.o
|
|
obj-$(CONFIG_CPU_FREQ_GOV_SCHEDUTIL) += cpufreq_schedutil.o
|
|
obj-$(CONFIG_MEMBARRIER) += membarrier.o
|
|
obj-$(CONFIG_CPU_ISOLATION) += isolation.o
|
|
obj-$(CONFIG_PSI) += psi.o
|
|
obj-$(CONFIG_SCHED_CORE) += core_sched.o
|
|
obj-$(CONFIG_ANDROID_VENDOR_HOOKS) += vendor_hooks.o
|