From: kernel test robot <lkp@intel.com>
To: Uros Bizjak <ubizjak@gmail.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
Ingo Molnar <mingo@kernel.org>
Subject: arch/x86/include/asm/cmpxchg_32.h:149:9: error: inline assembly requires more registers than available
Date: Sun, 23 Jun 2024 10:01:26 +0800 [thread overview]
Message-ID: <202406230912.F6XFIyA6-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5f583a3162ffd9f7999af76b8ab634ce2dac9f90
commit: 95ece48165c136b96fae0f6144f55cbf8b24aeb9 locking/atomic/x86: Rewrite x86_32 arch_atomic64_{,fetch}_{and,or,xor}() functions
date: 2 months ago
config: i386-randconfig-061-20240623 (https://download.01.org/0day-ci/archive/20240623/202406230912.F6XFIyA6-lkp@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240623/202406230912.F6XFIyA6-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202406230912.F6XFIyA6-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from kernel/bpf/core.c:21:
In file included from include/linux/filter.h:8:
In file included from include/linux/atomic.h:7:
In file included from arch/x86/include/asm/atomic.h:8:
In file included from arch/x86/include/asm/cmpxchg.h:143:
>> arch/x86/include/asm/cmpxchg_32.h:149:9: error: inline assembly requires more registers than available
149 | return __arch_try_cmpxchg64_emu(ptr, oldp, new);
| ^
arch/x86/include/asm/cmpxchg_32.h:131:15: note: expanded from macro '__arch_try_cmpxchg64_emu'
131 | asm volatile(ALTERNATIVE(LOCK_PREFIX_HERE \
| ^
arch/x86/include/asm/alternative.h:218:2: note: expanded from macro 'ALTERNATIVE'
218 | OLDINSTR(oldinstr, 1) \
| ^
arch/x86/include/asm/alternative.h:168:2: note: expanded from macro 'OLDINSTR'
168 | "# ALT: oldnstr\n" \
| ^
In file included from kernel/bpf/core.c:21:
In file included from include/linux/filter.h:8:
In file included from include/linux/atomic.h:7:
In file included from arch/x86/include/asm/atomic.h:8:
In file included from arch/x86/include/asm/cmpxchg.h:143:
>> arch/x86/include/asm/cmpxchg_32.h:149:9: error: inline assembly requires more registers than available
arch/x86/include/asm/cmpxchg_32.h:131:15: note: expanded from macro '__arch_try_cmpxchg64_emu'
131 | asm volatile(ALTERNATIVE(LOCK_PREFIX_HERE \
| ^
arch/x86/include/asm/alternative.h:218:2: note: expanded from macro 'ALTERNATIVE'
218 | OLDINSTR(oldinstr, 1) \
| ^
arch/x86/include/asm/alternative.h:168:2: note: expanded from macro 'OLDINSTR'
168 | "# ALT: oldnstr\n" \
| ^
In file included from kernel/bpf/core.c:21:
In file included from include/linux/filter.h:8:
In file included from include/linux/atomic.h:7:
In file included from arch/x86/include/asm/atomic.h:8:
In file included from arch/x86/include/asm/cmpxchg.h:143:
>> arch/x86/include/asm/cmpxchg_32.h:149:9: error: inline assembly requires more registers than available
arch/x86/include/asm/cmpxchg_32.h:131:15: note: expanded from macro '__arch_try_cmpxchg64_emu'
131 | asm volatile(ALTERNATIVE(LOCK_PREFIX_HERE \
| ^
arch/x86/include/asm/alternative.h:218:2: note: expanded from macro 'ALTERNATIVE'
218 | OLDINSTR(oldinstr, 1) \
| ^
arch/x86/include/asm/alternative.h:168:2: note: expanded from macro 'OLDINSTR'
168 | "# ALT: oldnstr\n" \
| ^
In file included from kernel/bpf/core.c:21:
In file included from include/linux/filter.h:8:
In file included from include/linux/atomic.h:7:
In file included from arch/x86/include/asm/atomic.h:8:
In file included from arch/x86/include/asm/cmpxchg.h:143:
>> arch/x86/include/asm/cmpxchg_32.h:149:9: error: inline assembly requires more registers than available
arch/x86/include/asm/cmpxchg_32.h:131:15: note: expanded from macro '__arch_try_cmpxchg64_emu'
131 | asm volatile(ALTERNATIVE(LOCK_PREFIX_HERE \
| ^
arch/x86/include/asm/alternative.h:218:2: note: expanded from macro 'ALTERNATIVE'
218 | OLDINSTR(oldinstr, 1) \
| ^
arch/x86/include/asm/alternative.h:168:2: note: expanded from macro 'OLDINSTR'
168 | "# ALT: oldnstr\n" \
| ^
In file included from kernel/bpf/core.c:21:
In file included from include/linux/filter.h:8:
In file included from include/linux/atomic.h:7:
In file included from arch/x86/include/asm/atomic.h:8:
In file included from arch/x86/include/asm/cmpxchg.h:143:
>> arch/x86/include/asm/cmpxchg_32.h:149:9: error: inline assembly requires more registers than available
arch/x86/include/asm/cmpxchg_32.h:131:15: note: expanded from macro '__arch_try_cmpxchg64_emu'
131 | asm volatile(ALTERNATIVE(LOCK_PREFIX_HERE \
| ^
arch/x86/include/asm/alternative.h:218:2: note: expanded from macro 'ALTERNATIVE'
218 | OLDINSTR(oldinstr, 1) \
| ^
arch/x86/include/asm/alternative.h:168:2: note: expanded from macro 'OLDINSTR'
168 | "# ALT: oldnstr\n" \
| ^
In file included from kernel/bpf/core.c:21:
In file included from include/linux/filter.h:8:
In file included from include/linux/atomic.h:7:
In file included from arch/x86/include/asm/atomic.h:8:
In file included from arch/x86/include/asm/cmpxchg.h:143:
>> arch/x86/include/asm/cmpxchg_32.h:149:9: error: inline assembly requires more registers than available
arch/x86/include/asm/cmpxchg_32.h:131:15: note: expanded from macro '__arch_try_cmpxchg64_emu'
131 | asm volatile(ALTERNATIVE(LOCK_PREFIX_HERE \
| ^
arch/x86/include/asm/alternative.h:218:2: note: expanded from macro 'ALTERNATIVE'
218 | OLDINSTR(oldinstr, 1) \
| ^
arch/x86/include/asm/alternative.h:168:2: note: expanded from macro 'OLDINSTR'
168 | "# ALT: oldnstr\n" \
| ^
In file included from kernel/bpf/core.c:21:
In file included from include/linux/filter.h:8:
In file included from include/linux/atomic.h:7:
In file included from arch/x86/include/asm/atomic.h:8:
In file included from arch/x86/include/asm/cmpxchg.h:143:
>> arch/x86/include/asm/cmpxchg_32.h:149:9: error: inline assembly requires more registers than available
arch/x86/include/asm/cmpxchg_32.h:131:15: note: expanded from macro '__arch_try_cmpxchg64_emu'
131 | asm volatile(ALTERNATIVE(LOCK_PREFIX_HERE \
| ^
arch/x86/include/asm/alternative.h:218:2: note: expanded from macro 'ALTERNATIVE'
218 | OLDINSTR(oldinstr, 1) \
| ^
arch/x86/include/asm/alternative.h:168:2: note: expanded from macro 'OLDINSTR'
168 | "# ALT: oldnstr\n" \
| ^
7 errors generated.
vim +149 arch/x86/include/asm/cmpxchg_32.h
aef95dac9ce4f2 Uros Bizjak 2024-04-08 146
aef95dac9ce4f2 Uros Bizjak 2024-04-08 147 static __always_inline bool arch_try_cmpxchg64(volatile u64 *ptr, u64 *oldp, u64 new)
aef95dac9ce4f2 Uros Bizjak 2024-04-08 148 {
aef95dac9ce4f2 Uros Bizjak 2024-04-08 @149 return __arch_try_cmpxchg64_emu(ptr, oldp, new);
aef95dac9ce4f2 Uros Bizjak 2024-04-08 150 }
aef95dac9ce4f2 Uros Bizjak 2024-04-08 151 #define arch_try_cmpxchg64 arch_try_cmpxchg64
aef95dac9ce4f2 Uros Bizjak 2024-04-08 152
:::::: The code at line 149 was first introduced by commit
:::::: aef95dac9ce4f271cc43195ffc175114ed934cbe locking/atomic/x86: Introduce arch_try_cmpxchg64() for !CONFIG_X86_CMPXCHG64
:::::: TO: Uros Bizjak <ubizjak@gmail.com>
:::::: CC: Ingo Molnar <mingo@kernel.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2024-06-23 2:02 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-23 2:01 kernel test robot [this message]
2024-06-23 10:14 ` arch/x86/include/asm/cmpxchg_32.h:149:9: error: inline assembly requires more registers than available Uros Bizjak
2024-06-23 15:42 ` Linus Torvalds
2024-06-23 17:42 ` Linus Torvalds
2024-06-23 17:43 ` Uros Bizjak
2024-06-23 17:48 ` Linus Torvalds
2024-06-23 18:07 ` Linus Torvalds
2024-06-24 7:36 ` Uros Bizjak
2024-06-24 13:59 ` Linus Torvalds
2024-06-24 14:17 ` Linus Torvalds
2024-06-24 15:42 ` Uros Bizjak
2024-06-25 18:31 ` Linus Torvalds
2024-06-26 1:09 ` [PATCH] x86-32: fix cmpxchg8b_emu build error with clang Linus Torvalds
2024-06-26 7:39 ` Uros Bizjak
2024-06-26 9:07 ` Uros Bizjak
2024-06-26 15:11 ` Linus Torvalds
2024-06-26 7:54 ` arch/x86/include/asm/cmpxchg_32.h:149:9: error: inline assembly requires more registers than available Uros Bizjak
2024-06-26 9:28 ` Peter Zijlstra
2024-06-26 9:33 ` Uros Bizjak
2024-06-26 9:42 ` Peter Zijlstra
2024-06-26 15:11 ` [PATCH v2] x86-32: fix cmpxchg8b_emu build error with clang Linus Torvalds
2024-06-26 18:59 ` Uros Bizjak
2024-06-30 23:12 ` Linus Torvalds
2024-06-23 18:14 ` arch/x86/include/asm/cmpxchg_32.h:149:9: error: inline assembly requires more registers than available Uros Bizjak
2024-06-23 18:25 ` Linus Torvalds
2024-06-23 18:41 ` Uros Bizjak
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=202406230912.F6XFIyA6-lkp@intel.com \
--to=lkp@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=ubizjak@gmail.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