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 all hook tracepoints globally in drivers/android/vendor_hooks.c, use subsystem-specific vendor_hooks.c if inclusion of subsystem-specific header files is required. 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. Bug: 233047575 Signed-off-by: Todd Kjos <tkjos@google.com> Change-Id: Ife5a66c2968de73e3f6d05840411310611e2e175
35 lines
1.4 KiB
Makefile
35 lines
1.4 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
# The compilers are complaining about unused variables inside an if(0) scope
|
|
# block. This is daft, shut them up.
|
|
ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
|
|
|
|
# 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
|
|
|
|
# Disable KCSAN to avoid excessive noise and performance degradation. To avoid
|
|
# false positives ensure barriers implied by sched functions are instrumented.
|
|
KCSAN_SANITIZE := n
|
|
KCSAN_INSTRUMENT_BARRIERS := y
|
|
|
|
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
|
|
|
|
#
|
|
# Build efficiency:
|
|
#
|
|
# These compilation units have roughly the same size and complexity - so their
|
|
# build parallelizes well and finishes roughly at once:
|
|
#
|
|
obj-y += core.o
|
|
obj-y += fair.o
|
|
obj-y += build_policy.o
|
|
obj-y += build_utility.o
|
|
obj-$(CONFIG_ANDROID_VENDOR_HOOKS) += vendor_hooks.o
|