Message ID | 20151026175745.GD29592@lst.de (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Hi Torsten, [auto build test ERROR on powerpc/next -- if it's inappropriate base, please suggest rules for selecting the more suitable base] url: https://github.com/0day-ci/linux/commits/Torsten-Duwe/Re-PATCH-v3-0-8-ftrace-with-regs-live-patching-for-ppc64-LE-ABI-v2/20151027-020058 config: powerpc-ppc6xx_defconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=powerpc All errors (new ones prefixed by >>): kernel/built-in.o: In function `ftrace_get_addr_curr': >> kernel/trace/ftrace.c:2286: undefined reference to `ftrace_regs_caller' >> kernel/trace/ftrace.c:2286: undefined reference to `ftrace_regs_caller' kernel/built-in.o: In function `ftrace_get_addr_new': kernel/trace/ftrace.c:2254: undefined reference to `ftrace_regs_caller' kernel/trace/ftrace.c:2254: undefined reference to `ftrace_regs_caller' kernel/built-in.o: In function `__ftrace_replace_code': >> kernel/trace/ftrace.c:2316: undefined reference to `ftrace_modify_call' kernel/built-in.o: In function `ftrace_get_addr_curr': >> kernel/trace/ftrace.c:2286: undefined reference to `ftrace_regs_caller' >> kernel/trace/ftrace.c:2286: undefined reference to `ftrace_regs_caller' kernel/built-in.o: In function `ftrace_get_addr_new': kernel/trace/ftrace.c:2254: undefined reference to `ftrace_regs_caller' kernel/trace/ftrace.c:2254: undefined reference to `ftrace_regs_caller' kernel/built-in.o: In function `ftrace_get_addr_curr': >> kernel/trace/ftrace.c:2286: undefined reference to `ftrace_regs_caller' kernel/built-in.o:kernel/trace/ftrace.c:2286: more undefined references to `ftrace_regs_caller' follow vim +2286 kernel/trace/ftrace.c 79922b80 Steven Rostedt (Red Hat 2014-05-06 2280) return (unsigned long)FTRACE_ADDR; 79922b80 Steven Rostedt (Red Hat 2014-05-06 2281) } 79922b80 Steven Rostedt (Red Hat 2014-05-06 2282) return ops->trampoline; 79922b80 Steven Rostedt (Red Hat 2014-05-06 2283) } 79922b80 Steven Rostedt (Red Hat 2014-05-06 2284) 7413af1f Steven Rostedt (Red Hat 2014-05-06 2285) if (rec->flags & FTRACE_FL_REGS_EN) 7413af1f Steven Rostedt (Red Hat 2014-05-06 @2286) return (unsigned long)FTRACE_REGS_ADDR; 7413af1f Steven Rostedt (Red Hat 2014-05-06 2287) else 7413af1f Steven Rostedt (Red Hat 2014-05-06 2288) return (unsigned long)FTRACE_ADDR; 7413af1f Steven Rostedt (Red Hat 2014-05-06 2289) } 7413af1f Steven Rostedt (Red Hat 2014-05-06 2290) c88fd863 Steven Rostedt 2011-08-16 2291 static int c88fd863 Steven Rostedt 2011-08-16 2292 __ftrace_replace_code(struct dyn_ftrace *rec, int enable) c88fd863 Steven Rostedt 2011-08-16 2293 { 08f6fba5 Steven Rostedt 2012-04-30 2294 unsigned long ftrace_old_addr; c88fd863 Steven Rostedt 2011-08-16 2295 unsigned long ftrace_addr; c88fd863 Steven Rostedt 2011-08-16 2296 int ret; c88fd863 Steven Rostedt 2011-08-16 2297 7c0868e0 Steven Rostedt (Red Hat 2014-05-08 2298) ftrace_addr = ftrace_get_addr_new(rec); c88fd863 Steven Rostedt 2011-08-16 2299 7c0868e0 Steven Rostedt (Red Hat 2014-05-08 2300) /* This needs to be done before we call ftrace_update_record */ 7c0868e0 Steven Rostedt (Red Hat 2014-05-08 2301) ftrace_old_addr = ftrace_get_addr_curr(rec); 7c0868e0 Steven Rostedt (Red Hat 2014-05-08 2302) 7c0868e0 Steven Rostedt (Red Hat 2014-05-08 2303) ret = ftrace_update_record(rec, enable); 08f6fba5 Steven Rostedt 2012-04-30 2304 c88fd863 Steven Rostedt 2011-08-16 2305 switch (ret) { c88fd863 Steven Rostedt 2011-08-16 2306 case FTRACE_UPDATE_IGNORE: c88fd863 Steven Rostedt 2011-08-16 2307 return 0; c88fd863 Steven Rostedt 2011-08-16 2308 c88fd863 Steven Rostedt 2011-08-16 2309 case FTRACE_UPDATE_MAKE_CALL: c88fd863 Steven Rostedt 2011-08-16 2310 return ftrace_make_call(rec, ftrace_addr); c88fd863 Steven Rostedt 2011-08-16 2311 c88fd863 Steven Rostedt 2011-08-16 2312 case FTRACE_UPDATE_MAKE_NOP: 39b5552c Steven Rostedt (Red Hat 2014-08-17 2313) return ftrace_make_nop(NULL, rec, ftrace_old_addr); 08f6fba5 Steven Rostedt 2012-04-30 2314 08f6fba5 Steven Rostedt 2012-04-30 2315 case FTRACE_UPDATE_MODIFY_CALL: 08f6fba5 Steven Rostedt 2012-04-30 @2316 return ftrace_modify_call(rec, ftrace_old_addr, ftrace_addr); 5072c59f Steven Rostedt 2008-05-12 2317 } 5072c59f Steven Rostedt 2008-05-12 2318 c88fd863 Steven Rostedt 2011-08-16 2319 return -1; /* unknow ftrace bug */ :::::: The code at line 2286 was first introduced by commit :::::: 7413af1fb70e7efa6dbc7f27663e7a5126b3aa33 ftrace: Make get_ftrace_addr() and get_ftrace_addr_old() global :::::: TO: Steven Rostedt (Red Hat) <rostedt@goodmis.org> :::::: CC: Steven Rostedt <rostedt@goodmis.org> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 9a7057e..0e6011c 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -97,8 +97,10 @@ config PPC select OF_RESERVED_MEM select HAVE_FTRACE_MCOUNT_RECORD select HAVE_DYNAMIC_FTRACE + select HAVE_DYNAMIC_FTRACE_WITH_REGS select HAVE_FUNCTION_TRACER select HAVE_FUNCTION_GRAPH_TRACER + select HAVE_MPROFILE_KERNEL select SYSCTL_EXCEPTION_TRACE select ARCH_WANT_OPTIONAL_GPIOLIB select VIRT_TO_BUS if !PPC64 diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index b9b4af2..25d0034 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -133,6 +133,13 @@ else CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64 endif +ifeq ($(CONFIG_PPC64),y) +ifdef CONFIG_HAVE_MPROFILE_KERNEL +CC_FLAGS_FTRACE := -pg $(call cc-option,-mprofile-kernel) +KBUILD_CPPFLAGS += -DCC_USING_MPROFILE_KERNEL +endif +endif + CFLAGS-$(CONFIG_CELL_CPU) += $(call cc-option,-mcpu=cell) CFLAGS-$(CONFIG_POWER4_CPU) += $(call cc-option,-mcpu=power4) CFLAGS-$(CONFIG_POWER5_CPU) += $(call cc-option,-mcpu=power5) diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index 1153c43..dbcb635 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig @@ -52,6 +52,11 @@ config HAVE_FENTRY help Arch supports the gcc options -pg with -mfentry +config HAVE_MPROFILE_KERNEL + bool + help + Arch supports the gcc options -pg with -mprofile-kernel + config HAVE_C_RECORDMCOUNT bool help
* Makefile: - globally use -mprofile-kernel in case it's configured. * arch/powerpc/Kconfig / kernel/trace/Kconfig: - declare that ppc64 HAVE_MPROFILE_KERNEL and HAVE_DYNAMIC_FTRACE_WITH_REGS, and use it. Signed-off-by: Torsten Duwe <duwe@suse.de> --- arch/powerpc/Kconfig | 2 ++ arch/powerpc/Makefile | 7 +++++++ kernel/trace/Kconfig | 5 +++++ 3 files changed, 14 insertions(+)