* Re: [tip:core/rseq 25/39] include/linux/rseq_entry.h:132:3: error: invalid operand for instruction
[not found] <202511250134.i0Jm8d7I-lkp@intel.com>
@ 2025-11-24 19:15 ` Thomas Gleixner
2025-11-25 2:28 ` Philip Li
2025-11-25 7:38 ` Christophe Leroy (CS GROUP)
0 siblings, 2 replies; 5+ messages in thread
From: Thomas Gleixner @ 2025-11-24 19:15 UTC (permalink / raw)
To: kernel test robot
Cc: llvm, oe-kbuild-all, linux-kernel, x86, Ingo Molnar,
Peter Zijlstra (Intel), Mathieu Desnoyers, linuxppc-dev,
Nathan Chancellor
On Tue, Nov 25 2025 at 01:37, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core/rseq
> head: 21782b3a5cd40892cb2995aa1ec3e74dd1112f1d
> commit: abc850e7616c91ebaa3f5ba3617ab0a104d45039 [25/39] rseq: Provide and use rseq_update_user_cs()
> config: powerpc-randconfig-002-20251124 (https://download.01.org/0day-ci/archive/20251125/202511250134.i0Jm8d7I-lkp@intel.com/config)
> compiler: clang version 16.0.6 (https://github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251125/202511250134.i0Jm8d7I-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/202511250134.i0Jm8d7I-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> In file included from kernel/rseq.c:75:
>>> include/linux/rseq_entry.h:132:3: error: invalid operand for instruction
> unsafe_get_user(start_ip, &ucs->start_ip, efault);
> ^
> include/linux/uaccess.h:606:2: note: expanded from macro 'unsafe_get_user'
> arch_unsafe_get_user(x, ptr, local_label); \
> ^
> arch/powerpc/include/asm/uaccess.h:458:2: note: expanded from macro 'arch_unsafe_get_user'
> __get_user_size_goto(__gu_val, __gu_addr, sizeof(*(p)), e); \
> ^
> arch/powerpc/include/asm/uaccess.h:282:2: note: expanded from macro '__get_user_size_goto'
> __get_user_size_allowed(x, ptr, size, __gus_retval); \
> ^
> arch/powerpc/include/asm/uaccess.h:273:10: note: expanded from macro '__get_user_size_allowed'
> case 8: __get_user_asm2(x, (u64 __user *)ptr, retval); break; \
> ^
> arch/powerpc/include/asm/uaccess.h:256:4: note: expanded from macro '__get_user_asm2'
> " li %1+1,0\n" \
> ^
> <inline asm>:7:5: note: instantiated into assembly here
> li 31+1,0
Definitely not a problem of tip core/rseq. It just ends up in
__get_user_asm2() and then the compiler gets unhappy about the PowerPC
inline assembly for whatever reason.
Thanks,
tglx
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [tip:core/rseq 25/39] include/linux/rseq_entry.h:132:3: error: invalid operand for instruction
2025-11-24 19:15 ` [tip:core/rseq 25/39] include/linux/rseq_entry.h:132:3: error: invalid operand for instruction Thomas Gleixner
@ 2025-11-25 2:28 ` Philip Li
2025-11-25 7:38 ` Christophe Leroy (CS GROUP)
1 sibling, 0 replies; 5+ messages in thread
From: Philip Li @ 2025-11-25 2:28 UTC (permalink / raw)
To: Thomas Gleixner
Cc: kernel test robot, llvm, oe-kbuild-all, linux-kernel, x86,
Ingo Molnar, Peter Zijlstra (Intel), Mathieu Desnoyers,
linuxppc-dev, Nathan Chancellor
On Mon, Nov 24, 2025 at 08:15:46PM +0100, Thomas Gleixner wrote:
> On Tue, Nov 25 2025 at 01:37, kernel test robot wrote:
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core/rseq
> > head: 21782b3a5cd40892cb2995aa1ec3e74dd1112f1d
> > commit: abc850e7616c91ebaa3f5ba3617ab0a104d45039 [25/39] rseq: Provide and use rseq_update_user_cs()
> > config: powerpc-randconfig-002-20251124 (https://download.01.org/0day-ci/archive/20251125/202511250134.i0Jm8d7I-lkp@intel.com/config)
> > compiler: clang version 16.0.6 (https://github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
> > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251125/202511250134.i0Jm8d7I-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/202511250134.i0Jm8d7I-lkp@intel.com/
> >
> > All errors (new ones prefixed by >>):
> >
> > In file included from kernel/rseq.c:75:
> >>> include/linux/rseq_entry.h:132:3: error: invalid operand for instruction
> > unsafe_get_user(start_ip, &ucs->start_ip, efault);
> > ^
> > include/linux/uaccess.h:606:2: note: expanded from macro 'unsafe_get_user'
> > arch_unsafe_get_user(x, ptr, local_label); \
> > ^
> > arch/powerpc/include/asm/uaccess.h:458:2: note: expanded from macro 'arch_unsafe_get_user'
> > __get_user_size_goto(__gu_val, __gu_addr, sizeof(*(p)), e); \
> > ^
> > arch/powerpc/include/asm/uaccess.h:282:2: note: expanded from macro '__get_user_size_goto'
> > __get_user_size_allowed(x, ptr, size, __gus_retval); \
> > ^
> > arch/powerpc/include/asm/uaccess.h:273:10: note: expanded from macro '__get_user_size_allowed'
> > case 8: __get_user_asm2(x, (u64 __user *)ptr, retval); break; \
> > ^
> > arch/powerpc/include/asm/uaccess.h:256:4: note: expanded from macro '__get_user_asm2'
> > " li %1+1,0\n" \
> > ^
> > <inline asm>:7:5: note: instantiated into assembly here
> > li 31+1,0
>
> Definitely not a problem of tip core/rseq. It just ends up in
> __get_user_asm2() and then the compiler gets unhappy about the PowerPC
> inline assembly for whatever reason.
Thanks, got it, I will configure the bot to avoid sending further report
for this.
>
> Thanks,
>
> tglx
>
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [tip:core/rseq 25/39] include/linux/rseq_entry.h:132:3: error: invalid operand for instruction
2025-11-24 19:15 ` [tip:core/rseq 25/39] include/linux/rseq_entry.h:132:3: error: invalid operand for instruction Thomas Gleixner
2025-11-25 2:28 ` Philip Li
@ 2025-11-25 7:38 ` Christophe Leroy (CS GROUP)
2025-11-25 23:18 ` Nathan Chancellor
1 sibling, 1 reply; 5+ messages in thread
From: Christophe Leroy (CS GROUP) @ 2025-11-25 7:38 UTC (permalink / raw)
To: Thomas Gleixner, kernel test robot
Cc: llvm, oe-kbuild-all, linux-kernel, x86, Ingo Molnar,
Peter Zijlstra (Intel), Mathieu Desnoyers, linuxppc-dev,
Nathan Chancellor
Le 24/11/2025 à 20:15, Thomas Gleixner a écrit :
> On Tue, Nov 25 2025 at 01:37, kernel test robot wrote:
>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core/rseq
>> head: 21782b3a5cd40892cb2995aa1ec3e74dd1112f1d
>> commit: abc850e7616c91ebaa3f5ba3617ab0a104d45039 [25/39] rseq: Provide and use rseq_update_user_cs()
>> config: powerpc-randconfig-002-20251124 (https://download.01.org/0day-ci/archive/20251125/202511250134.i0Jm8d7I-lkp@intel.com/config)
>> compiler: clang version 16.0.6 (https://github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
>> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251125/202511250134.i0Jm8d7I-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/202511250134.i0Jm8d7I-lkp@intel.com/
>>
>> All errors (new ones prefixed by >>):
>>
>> In file included from kernel/rseq.c:75:
>>>> include/linux/rseq_entry.h:132:3: error: invalid operand for instruction
>> unsafe_get_user(start_ip, &ucs->start_ip, efault);
>> ^
>> include/linux/uaccess.h:606:2: note: expanded from macro 'unsafe_get_user'
>> arch_unsafe_get_user(x, ptr, local_label); \
>> ^
>> arch/powerpc/include/asm/uaccess.h:458:2: note: expanded from macro 'arch_unsafe_get_user'
>> __get_user_size_goto(__gu_val, __gu_addr, sizeof(*(p)), e); \
>> ^
>> arch/powerpc/include/asm/uaccess.h:282:2: note: expanded from macro '__get_user_size_goto'
>> __get_user_size_allowed(x, ptr, size, __gus_retval); \
>> ^
>> arch/powerpc/include/asm/uaccess.h:273:10: note: expanded from macro '__get_user_size_allowed'
>> case 8: __get_user_asm2(x, (u64 __user *)ptr, retval); break; \
>> ^
>> arch/powerpc/include/asm/uaccess.h:256:4: note: expanded from macro '__get_user_asm2'
>> " li %1+1,0\n" \
>> ^
>> <inline asm>:7:5: note: instantiated into assembly here
>> li 31+1,0
>
> Definitely not a problem of tip core/rseq. It just ends up in
> __get_user_asm2() and then the compiler gets unhappy about the PowerPC
> inline assembly for whatever reason.
I see it is a CLANG build.
CLANG might be less flexible, can you test with following change ?
diff --git a/arch/powerpc/include/asm/uaccess.h
b/arch/powerpc/include/asm/uaccess.h
index 4f5a46a77fa2..33d5f7ade254 100644
--- a/arch/powerpc/include/asm/uaccess.h
+++ b/arch/powerpc/include/asm/uaccess.h
@@ -253,7 +253,7 @@ __gus_failed: \
".section .fixup,\"ax\"\n" \
"4: li %0,%3\n" \
" li %1,0\n" \
- " li %1+1,0\n" \
+ " li %L1,0\n" \
" b 3b\n" \
".previous\n" \
EX_TABLE(1b, 4b) \
Thanks
Christophe
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [tip:core/rseq 25/39] include/linux/rseq_entry.h:132:3: error: invalid operand for instruction
2025-11-25 7:38 ` Christophe Leroy (CS GROUP)
@ 2025-11-25 23:18 ` Nathan Chancellor
2025-11-25 23:39 ` Nathan Chancellor
0 siblings, 1 reply; 5+ messages in thread
From: Nathan Chancellor @ 2025-11-25 23:18 UTC (permalink / raw)
To: Christophe Leroy (CS GROUP)
Cc: Thomas Gleixner, kernel test robot, llvm, oe-kbuild-all,
linux-kernel, x86, Ingo Molnar, Peter Zijlstra (Intel),
Mathieu Desnoyers, linuxppc-dev
On Tue, Nov 25, 2025 at 08:38:40AM +0100, Christophe Leroy (CS GROUP) wrote:
>
>
> Le 24/11/2025 à 20:15, Thomas Gleixner a écrit :
> > On Tue, Nov 25 2025 at 01:37, kernel test robot wrote:
> > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core/rseq
> > > head: 21782b3a5cd40892cb2995aa1ec3e74dd1112f1d
> > > commit: abc850e7616c91ebaa3f5ba3617ab0a104d45039 [25/39] rseq: Provide and use rseq_update_user_cs()
> > > config: powerpc-randconfig-002-20251124 (https://download.01.org/0day-ci/archive/20251125/202511250134.i0Jm8d7I-lkp@intel.com/config)
> > > compiler: clang version 16.0.6 (https://github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
> > > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251125/202511250134.i0Jm8d7I-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/202511250134.i0Jm8d7I-lkp@intel.com/
> > >
> > > All errors (new ones prefixed by >>):
> > >
> > > In file included from kernel/rseq.c:75:
> > > > > include/linux/rseq_entry.h:132:3: error: invalid operand for instruction
> > > unsafe_get_user(start_ip, &ucs->start_ip, efault);
> > > ^
> > > include/linux/uaccess.h:606:2: note: expanded from macro 'unsafe_get_user'
> > > arch_unsafe_get_user(x, ptr, local_label); \
> > > ^
> > > arch/powerpc/include/asm/uaccess.h:458:2: note: expanded from macro 'arch_unsafe_get_user'
> > > __get_user_size_goto(__gu_val, __gu_addr, sizeof(*(p)), e); \
> > > ^
> > > arch/powerpc/include/asm/uaccess.h:282:2: note: expanded from macro '__get_user_size_goto'
> > > __get_user_size_allowed(x, ptr, size, __gus_retval); \
> > > ^
> > > arch/powerpc/include/asm/uaccess.h:273:10: note: expanded from macro '__get_user_size_allowed'
> > > case 8: __get_user_asm2(x, (u64 __user *)ptr, retval); break; \
> > > ^
> > > arch/powerpc/include/asm/uaccess.h:256:4: note: expanded from macro '__get_user_asm2'
> > > " li %1+1,0\n" \
> > > ^
> > > <inline asm>:7:5: note: instantiated into assembly here
> > > li 31+1,0
> >
> > Definitely not a problem of tip core/rseq. It just ends up in
> > __get_user_asm2() and then the compiler gets unhappy about the PowerPC
> > inline assembly for whatever reason.
>
> I see it is a CLANG build.
>
> CLANG might be less flexible, can you test with following change ?
That avoids the error for me. I notice that this does not reproduce
beyond clang-16 for me so I am going to bisect LLVM to see what fixes
this error.
> diff --git a/arch/powerpc/include/asm/uaccess.h
> b/arch/powerpc/include/asm/uaccess.h
> index 4f5a46a77fa2..33d5f7ade254 100644
> --- a/arch/powerpc/include/asm/uaccess.h
> +++ b/arch/powerpc/include/asm/uaccess.h
> @@ -253,7 +253,7 @@ __gus_failed: \
> ".section .fixup,\"ax\"\n" \
> "4: li %0,%3\n" \
> " li %1,0\n" \
> - " li %1+1,0\n" \
> + " li %L1,0\n" \
> " b 3b\n" \
> ".previous\n" \
> EX_TABLE(1b, 4b) \
>
>
> Thanks
> Christophe
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [tip:core/rseq 25/39] include/linux/rseq_entry.h:132:3: error: invalid operand for instruction
2025-11-25 23:18 ` Nathan Chancellor
@ 2025-11-25 23:39 ` Nathan Chancellor
0 siblings, 0 replies; 5+ messages in thread
From: Nathan Chancellor @ 2025-11-25 23:39 UTC (permalink / raw)
To: Christophe Leroy (CS GROUP)
Cc: Thomas Gleixner, kernel test robot, llvm, oe-kbuild-all,
linux-kernel, x86, Ingo Molnar, Peter Zijlstra (Intel),
Mathieu Desnoyers, linuxppc-dev
On Tue, Nov 25, 2025 at 04:18:34PM -0700, Nathan Chancellor wrote:
> That avoids the error for me. I notice that this does not reproduce
> beyond clang-16 for me so I am going to bisect LLVM to see what fixes
> this error.
Oh, it is because of commit e2ffa15b9baa ("kbuild: Disable
CC_HAS_ASM_GOTO_OUTPUT on clang < 17"). Prior to that change, all
supported versions of clang would use the CONFIG_CC_HAS_ASM_GOTO_OUTPUT
blocks in arch/powerpc/include/asm/uaccess.h, whereas now clang-15 and
clang-16 will use the variants without asm goto with outputs.
Cheers,
Nathan
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-11-25 23:39 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <202511250134.i0Jm8d7I-lkp@intel.com>
2025-11-24 19:15 ` [tip:core/rseq 25/39] include/linux/rseq_entry.h:132:3: error: invalid operand for instruction Thomas Gleixner
2025-11-25 2:28 ` Philip Li
2025-11-25 7:38 ` Christophe Leroy (CS GROUP)
2025-11-25 23:18 ` Nathan Chancellor
2025-11-25 23:39 ` Nathan Chancellor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).