lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <201912061533.I9JjEoWz%lkp@intel.com>
Date:   Fri, 6 Dec 2019 15:08:40 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Torsten Duwe <duwe@....de>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Mark Rutland <mark.rutland@....com>,
        Amit Daniel Kachhap <amit.kachhap@....com>,
        Ard Biesheuvel <ard.biesheuvel@...aro.org>
Subject: arch/arm64/kernel/entry-ftrace.S:238: undefined reference to
 `ftrace_graph_caller'

Hi Torsten,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   b0d4beaa5a4b7d31070c41c2e50740304a3f1138
commit: 3b23e4991fb66f6d152f9055ede271a726ef9f21 arm64: implement ftrace with regs
date:   4 weeks ago
config: arm64-randconfig-a001-20191205 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 7.5.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 3b23e4991fb66f6d152f9055ede271a726ef9f21
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=arm64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@...el.com>

All errors (new ones prefixed by >>):

   arch/arm64/kernel/entry-ftrace.o: In function `skip_ftrace_call':
>> arch/arm64/kernel/entry-ftrace.S:238: undefined reference to `ftrace_graph_caller'
   arch/arm64/kernel/entry-ftrace.S:238:(.text+0x3c): relocation truncated to fit: R_AARCH64_CONDBR19 against undefined symbol `ftrace_graph_caller'
   arch/arm64/kernel/entry-ftrace.S:243: undefined reference to `ftrace_graph_caller'
   arch/arm64/kernel/entry-ftrace.S:243:(.text+0x54): relocation truncated to fit: R_AARCH64_CONDBR19 against undefined symbol `ftrace_graph_caller'

vim +238 arch/arm64/kernel/entry-ftrace.S

3b23e4991fb66f Torsten Duwe    2019-02-08  140  
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  141  /*
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  142   * Gcc with -pg will put the following code in the beginning of each function:
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  143   *      mov x0, x30
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  144   *      bl _mcount
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  145   *	[function's body ...]
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  146   * "bl _mcount" may be replaced to "bl ftrace_caller" or NOP if dynamic
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  147   * ftrace is enabled.
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  148   *
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  149   * Please note that x0 as an argument will not be used here because we can
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  150   * get lr(x30) of instrumented function at any time by winding up call stack
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  151   * as long as the kernel is compiled without -fomit-frame-pointer.
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  152   * (or CONFIG_FRAME_POINTER, this is forced on arm64)
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  153   *
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  154   * stack layout after mcount_enter in _mcount():
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  155   *
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  156   * current sp/fp =>  0:+-----+
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  157   * in _mcount()        | x29 | -> instrumented function's fp
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  158   *                     +-----+
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  159   *                     | x30 | -> _mcount()'s lr (= instrumented function's pc)
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  160   * old sp       => +16:+-----+
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  161   * when instrumented   |     |
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  162   * function calls      | ... |
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  163   * _mcount()           |     |
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  164   *                     |     |
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  165   * instrumented => +xx:+-----+
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  166   * function's fp       | x29 | -> parent's fp
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  167   *                     +-----+
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  168   *                     | x30 | -> instrumented function's lr (= parent's pc)
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  169   *                     +-----+
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  170   *                     | ... |
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  171   */
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  172  
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  173  	.macro mcount_enter
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  174  	stp	x29, x30, [sp, #-16]!
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  175  	mov	x29, sp
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  176  	.endm
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  177  
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  178  	.macro mcount_exit
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  179  	ldp	x29, x30, [sp], #16
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  180  	ret
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  181  	.endm
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  182  
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  183  	.macro mcount_adjust_addr rd, rn
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  184  	sub	\rd, \rn, #AARCH64_INSN_SIZE
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  185  	.endm
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  186  
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  187  	/* for instrumented function's parent */
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  188  	.macro mcount_get_parent_fp reg
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  189  	ldr	\reg, [x29]
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  190  	ldr	\reg, [\reg]
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  191  	.endm
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  192  
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  193  	/* for instrumented function */
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  194  	.macro mcount_get_pc0 reg
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  195  	mcount_adjust_addr	\reg, x30
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  196  	.endm
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  197  
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  198  	.macro mcount_get_pc reg
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  199  	ldr	\reg, [x29, #8]
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  200  	mcount_adjust_addr	\reg, \reg
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  201  	.endm
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  202  
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  203  	.macro mcount_get_lr reg
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  204  	ldr	\reg, [x29]
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  205  	ldr	\reg, [\reg, #8]
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  206  	.endm
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  207  
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  208  	.macro mcount_get_lr_addr reg
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  209  	ldr	\reg, [x29]
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  210  	add	\reg, \reg, #8
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  211  	.endm
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  212  
bd7d38dbdf356e AKASHI Takahiro 2014-04-30  213  #ifndef CONFIG_DYNAMIC_FTRACE
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  214  /*
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  215   * void _mcount(unsigned long return_address)
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  216   * @return_address: return address to instrumented function
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  217   *
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  218   * This function makes calls, if enabled, to:
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  219   *     - tracer function to probe instrumented function's entry,
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  220   *     - ftrace_graph_caller to set up an exit hook
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  221   */
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  222  ENTRY(_mcount)
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  223  	mcount_enter
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  224  
829d2bd1339220 Mark Rutland    2017-01-17  225  	ldr_l	x2, ftrace_trace_function
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  226  	adr	x0, ftrace_stub
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  227  	cmp	x0, x2			// if (ftrace_trace_function
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  228  	b.eq	skip_ftrace_call	//     != ftrace_stub) {
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  229  
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  230  	mcount_get_pc	x0		//       function's pc
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  231  	mcount_get_lr	x1		//       function's lr (= parent's pc)
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  232  	blr	x2			//   (*ftrace_trace_function)(pc, lr);
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  233  
d125bffcefb290 Julien Thierry  2017-11-03  234  skip_ftrace_call:			// }
d125bffcefb290 Julien Thierry  2017-11-03  235  #ifdef CONFIG_FUNCTION_GRAPH_TRACER
829d2bd1339220 Mark Rutland    2017-01-17  236  	ldr_l	x2, ftrace_graph_return
f1ba46ee787d0a Ard Biesheuvel  2014-11-07  237  	cmp	x0, x2			//   if ((ftrace_graph_return
f1ba46ee787d0a Ard Biesheuvel  2014-11-07 @238  	b.ne	ftrace_graph_caller	//        != ftrace_stub)
f1ba46ee787d0a Ard Biesheuvel  2014-11-07  239  
829d2bd1339220 Mark Rutland    2017-01-17  240  	ldr_l	x2, ftrace_graph_entry	//     || (ftrace_graph_entry
829d2bd1339220 Mark Rutland    2017-01-17  241  	adr_l	x0, ftrace_graph_entry_stub //     != ftrace_graph_entry_stub))
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  242  	cmp	x0, x2
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  243  	b.ne	ftrace_graph_caller	//     ftrace_graph_caller();
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  244  #endif /* CONFIG_FUNCTION_GRAPH_TRACER */
d125bffcefb290 Julien Thierry  2017-11-03  245  	mcount_exit
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  246  ENDPROC(_mcount)
dbd3196299fe58 Mark Rutland    2018-12-07  247  EXPORT_SYMBOL(_mcount)
dbd3196299fe58 Mark Rutland    2018-12-07  248  NOKPROBE(_mcount)
819e50e25d0ce8 AKASHI Takahiro 2014-04-30  249  

:::::: The code at line 238 was first introduced by commit
:::::: f1ba46ee787d0a880f884f401031315b0a777f25 arm64: ftrace: eliminate literal pool entries

:::::: TO: Ard Biesheuvel <ard.biesheuvel@...aro.org>
:::::: CC: Will Deacon <will.deacon@....com>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

Download attachment ".config.gz" of type "application/gzip" (39279 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ