From: Jason Baron <jbaron@akamai.com>
To: kbuild test robot <fengguang.wu@intel.com>
Cc: kbuild-all@01.org, Mel Gorman <mgorman@suse.de>,
Andrew Morton <akpm@linux-foundation.org>,
Linux Memory Management List <linux-mm@kvack.org>,
rth@redhat.com
Subject: Re: [mel:mm-vmscan-node-lru-v8r12 185/295] arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
Date: Fri, 24 Jun 2016 15:12:09 -0400 [thread overview]
Message-ID: <576D8609.50305@akamai.com> (raw)
In-Reply-To: <201606250046.lpbX7Fys%fengguang.wu@intel.com>
Hi,
On 06/24/2016 12:00 PM, kbuild test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/mel/linux mm-vmscan-node-lru-v8r12
> head: 572d76872348caf13577b82f35e4f1869fd79681
> commit: 6a8bfa2685fa2969d95b16470c846175c0ded7a4 [185/295] dynamic_debug: add jump label support
> config: arm-allyesconfig (attached as .config)
> compiler: arm-linux-gnueabi-gcc (Debian 5.3.1-8) 5.3.1 20160205
> 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
> git checkout 6a8bfa2685fa2969d95b16470c846175c0ded7a4
> # save the attached .config to linux build tree
> make.cross ARCH=arm
>
> All error/warnings (new ones prefixed by >>):
>
> In file included from include/linux/compiler.h:60:0,
> from include/linux/linkage.h:4,
> from include/linux/kernel.h:6,
> from drivers/crypto/ux500/cryp/cryp_irq.c:11:
> arch/arm/include/asm/jump_label.h: In function 'cryp_enable_irq_src':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>
In drivers/crypto/ux500/cryp/Makefile, there is an explicit setting to
disable gcc optimizations:
ifdef CONFIG_CRYPTO_DEV_UX500_DEBUG
CFLAGS_cryp_core.o := -DDEBUG -O0
CFLAGS_cryp.o := -DDEBUG -O0
CFLAGS_cryp_irq.o := -DDEBUG -O0
endif
If I change those to -O1 or -O2, it seems to build fine, strange...I was
able to reproduce this with gcc 4.9.0 as well.
Thanks,
-Jason
^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
> asm_volatile_goto("1:\n\t"
> ^
>>> include/linux/compiler-gcc.h:243:38: error: impossible constraint in 'asm'
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
> ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
> asm_volatile_goto("1:\n\t"
> ^
> arch/arm/include/asm/jump_label.h: In function 'cryp_disable_irq_src':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
> ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
> asm_volatile_goto("1:\n\t"
> ^
> --
> In file included from include/linux/compiler.h:60:0,
> from include/linux/err.h:4,
> from include/linux/clk.h:15,
> from drivers/crypto/ux500/cryp/cryp_core.c:12:
> arch/arm/include/asm/jump_label.h: In function 'cryp_interrupt_handler':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
> ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
> asm_volatile_goto("1:\n\t"
> ^
>>> include/linux/compiler-gcc.h:243:38: error: impossible constraint in 'asm'
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
> ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
> asm_volatile_goto("1:\n\t"
> ^
> arch/arm/include/asm/jump_label.h: In function 'cfg_iv':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
> ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
> asm_volatile_goto("1:\n\t"
> ^
> arch/arm/include/asm/jump_label.h: In function 'cfg_ivs':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
> ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
> asm_volatile_goto("1:\n\t"
> ^
> arch/arm/include/asm/jump_label.h: In function 'set_key':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
> ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
> asm_volatile_goto("1:\n\t"
> ^
> arch/arm/include/asm/jump_label.h: In function 'cfg_keys':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
> ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
> asm_volatile_goto("1:\n\t"
> ^
> arch/arm/include/asm/jump_label.h: In function 'cryp_get_device_data':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
> ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
> asm_volatile_goto("1:\n\t"
> ^
> arch/arm/include/asm/jump_label.h: In function 'cryp_dma_out_callback':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
> ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
> asm_volatile_goto("1:\n\t"
> ^
> arch/arm/include/asm/jump_label.h: In function 'cryp_set_dma_transfer':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
> ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
> asm_volatile_goto("1:\n\t"
> ^
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
> ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
> asm_volatile_goto("1:\n\t"
> ^
>
> vim +/asm_volatile_goto +13 arch/arm/include/asm/jump_label.h
>
> 09f05d85 Rabin Vincent 2012-02-18 1 #ifndef _ASM_ARM_JUMP_LABEL_H
> 09f05d85 Rabin Vincent 2012-02-18 2 #define _ASM_ARM_JUMP_LABEL_H
> 09f05d85 Rabin Vincent 2012-02-18 3
> 55dd0df7 Anton Blanchard 2015-04-09 4 #ifndef __ASSEMBLY__
> 09f05d85 Rabin Vincent 2012-02-18 5
> 09f05d85 Rabin Vincent 2012-02-18 6 #include <linux/types.h>
> 11276d53 Peter Zijlstra 2015-07-24 7 #include <asm/unified.h>
> 09f05d85 Rabin Vincent 2012-02-18 8
> 09f05d85 Rabin Vincent 2012-02-18 9 #define JUMP_LABEL_NOP_SIZE 4
> 09f05d85 Rabin Vincent 2012-02-18 10
> 11276d53 Peter Zijlstra 2015-07-24 11 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
> 11276d53 Peter Zijlstra 2015-07-24 12 {
> 11276d53 Peter Zijlstra 2015-07-24 @13 asm_volatile_goto("1:\n\t"
> 11276d53 Peter Zijlstra 2015-07-24 14 WASM(nop) "\n\t"
> 11276d53 Peter Zijlstra 2015-07-24 15 ".pushsection __jump_table, \"aw\"\n\t"
> 11276d53 Peter Zijlstra 2015-07-24 16 ".word 1b, %l[l_yes], %c0\n\t"
> 11276d53 Peter Zijlstra 2015-07-24 17 ".popsection\n\t"
> 11276d53 Peter Zijlstra 2015-07-24 18 : : "i" (&((char *)key)[branch]) : : l_yes);
> 11276d53 Peter Zijlstra 2015-07-24 19
> 11276d53 Peter Zijlstra 2015-07-24 20 return false;
> 11276d53 Peter Zijlstra 2015-07-24 21 l_yes:
>
> :::::: The code at line 13 was first introduced by commit
> :::::: 11276d5306b8e5b438a36bbff855fe792d7eaa61 locking/static_keys: Add a new static_key interface
>
> :::::: TO: Peter Zijlstra <peterz@infradead.org>
> :::::: CC: Ingo Molnar <mingo@kernel.org>
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
>
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
prev parent reply other threads:[~2016-06-24 19:12 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-24 16:00 kbuild test robot
2016-06-24 19:12 ` Jason Baron [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=576D8609.50305@akamai.com \
--to=jbaron@akamai.com \
--cc=akpm@linux-foundation.org \
--cc=fengguang.wu@intel.com \
--cc=kbuild-all@01.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=rth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox