819e50e25d
This patch implements arm64 specific part to support function tracers, such as function (CONFIG_FUNCTION_TRACER), function_graph (CONFIG_FUNCTION_GRAPH_TRACER) and function profiler (CONFIG_FUNCTION_PROFILER). With 'function' tracer, all the functions in the kernel are traced with timestamps in ${sysfs}/tracing/trace. If function_graph tracer is specified, call graph is generated. The kernel must be compiled with -pg option so that _mcount() is inserted at the beginning of functions. This function is called on every function's entry as long as tracing is enabled. In addition, function_graph tracer also needs to be able to probe function's exit. ftrace_graph_caller() & return_to_handler do this by faking link register's value to intercept function's return path. More details on architecture specific requirements are described in Documentation/trace/ftrace-design.txt. Reviewed-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com> Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Signed-off-by: Will Deacon <will.deacon@arm.com>
38 lines
1.3 KiB
Makefile
38 lines
1.3 KiB
Makefile
#
|
|
# Makefile for the linux kernel.
|
|
#
|
|
|
|
CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(TEXT_OFFSET)
|
|
AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET)
|
|
|
|
CFLAGS_REMOVE_ftrace.o = -pg
|
|
CFLAGS_REMOVE_insn.o = -pg
|
|
|
|
# Object file lists.
|
|
arm64-obj-y := cputable.o debug-monitors.o entry.o irq.o fpsimd.o \
|
|
entry-fpsimd.o process.o ptrace.o setup.o signal.o \
|
|
sys.o stacktrace.o time.o traps.o io.o vdso.o \
|
|
hyp-stub.o psci.o cpu_ops.o insn.o
|
|
|
|
arm64-obj-$(CONFIG_COMPAT) += sys32.o kuser32.o signal32.o \
|
|
sys_compat.o
|
|
arm64-obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o entry-ftrace.o
|
|
arm64-obj-$(CONFIG_MODULES) += arm64ksyms.o module.o
|
|
arm64-obj-$(CONFIG_SMP) += smp.o smp_spin_table.o topology.o
|
|
arm64-obj-$(CONFIG_PERF_EVENTS) += perf_regs.o
|
|
arm64-obj-$(CONFIG_HW_PERF_EVENTS) += perf_event.o
|
|
arm64-obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o
|
|
arm64-obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
|
|
arm64-obj-$(CONFIG_ARM64_CPU_SUSPEND) += sleep.o suspend.o
|
|
arm64-obj-$(CONFIG_JUMP_LABEL) += jump_label.o
|
|
arm64-obj-$(CONFIG_KGDB) += kgdb.o
|
|
|
|
obj-y += $(arm64-obj-y) vdso/
|
|
obj-m += $(arm64-obj-m)
|
|
head-y := head.o
|
|
extra-y := $(head-y) vmlinux.lds
|
|
|
|
# vDSO - this must be built first to generate the symbol offsets
|
|
$(call objectify,$(arm64-obj-y)): $(obj)/vdso/vdso-offsets.h
|
|
$(obj)/vdso/vdso-offsets.h: $(obj)/vdso
|