All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Björn Töpel" <bjorn@kernel.org>
To: Randy Dunlap <rdunlap@infradead.org>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	Linux Next Mailing List <linux-next@vger.kernel.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-riscv <linux-riscv@lists.infradead.org>
Subject: Re: linux-next: Tree for Aug 21 (riscv-64 asm)
Date: Wed, 23 Aug 2023 09:52:04 +0200	[thread overview]
Message-ID: <87r0nu19i3.fsf@all.your.base.are.belong.to.us> (raw)
In-Reply-To: <877cpmxl95.fsf@all.your.base.are.belong.to.us>

Björn Töpel <bjorn@kernel.org> writes:

> Björn Töpel <bjorn@kernel.org> writes:
>
>> Randy Dunlap <rdunlap@infradead.org> writes:
>>
>>> Hi,
>>>
>>> On 8/22/23 01:11, Björn Töpel wrote:
>>>> Randy Dunlap <rdunlap@infradead.org> writes:
>>>> 
>>>>> On 8/20/23 23:46, Stephen Rothwell wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> Changes since 20230818:
>>>>>>
>>>>>
>>>>> ../arch/riscv/kernel/traps.c: In function 'do_irq':
>>>>> ../arch/riscv/kernel/traps.c:384:1: error: s0 cannot be used in 'asm' here
>>>>>   384 | }
>>>>>       | ^
>>>>> ../arch/riscv/kernel/irq.c: In function 'do_softirq_own_stack':
>>>>> ../arch/riscv/kernel/irq.c:94:1: error: s0 cannot be used in 'asm' here
>>>>>    94 | }
>>>>>       | ^
>>>>>
>>>>>
>>>>> 2 out of 10 risc-v 64-bit builds failed with these errors.
>>>>>
>>>>> Is this a toolchain problem or something else?
>>>> 
>>>> Hmm, do you have a link to config/toolchain/log, or similar?
>>>
>>> The full randconfig file is attached.
>>>
>>> The toolchain is Arnd's build of gcc 13.1.0 from:
>>>   https://mirrors.edge.kernel.org/pub/tools/crosstool/
>>> (x86_64 host)
>>>
>>> Hm, I see that the latest/current there is gcc 13.2.0.
>>> I'll upgrade later today.
>>
>> Thanks Randy! I can reproduce with GCC 12 on my machine.
>>
>> The config has
>>  | # CONFIG_FRAME_POINTER is not set
>> but for some reason "-fno-omit-frame-pointer" is passed to GCC anyway,
>> which is why GCC complains about s0 (FP on RISC-V) in asm.
>>
>>
>> I'll dig a bit more.
>
> There are multiple issues:
>  * riscv enables -fno-omit-frame-pointer unconditionally for PERF_EVENTS
>  * CONFIG_FUNCTION_TRACER w/o dynamic ftrace enables -pg, which pulls in
>    -fno-omit-frame-pointer on riscv.

Maybe something like (too crude?):

diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 10e7a7ad175a..cd8075c092c3 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -62,6 +62,7 @@ config RISCV
        select COMMON_CLK
        select CPU_PM if CPU_IDLE || HIBERNATION
        select EDAC_SUPPORT
+       select FRAME_POINTER if PERF_EVENTS || (FUNCTION_TRACER && !DYNAMIC_FTRACE)
        select GENERIC_ARCH_TOPOLOGY
        select GENERIC_ATOMIC64 if !64BIT
        select GENERIC_CLOCKEVENTS_BROADCAST if SMP
diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
index 6ec6d52a4180..1329e060c548 100644
--- a/arch/riscv/Makefile
+++ b/arch/riscv/Makefile
@@ -87,9 +87,6 @@ endif
 ifeq ($(CONFIG_CMODEL_MEDANY),y)
        KBUILD_CFLAGS += -mcmodel=medany
 endif
-ifeq ($(CONFIG_PERF_EVENTS),y)
-        KBUILD_CFLAGS += -fno-omit-frame-pointer
-endif
 
 # Avoid generating .eh_frame sections.
 KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -fno-unwind-tables

WARNING: multiple messages have this Message-ID (diff)
From: "Björn Töpel" <bjorn@kernel.org>
To: Randy Dunlap <rdunlap@infradead.org>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	Linux Next Mailing List <linux-next@vger.kernel.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-riscv <linux-riscv@lists.infradead.org>
Subject: Re: linux-next: Tree for Aug 21 (riscv-64 asm)
Date: Wed, 23 Aug 2023 09:52:04 +0200	[thread overview]
Message-ID: <87r0nu19i3.fsf@all.your.base.are.belong.to.us> (raw)
In-Reply-To: <877cpmxl95.fsf@all.your.base.are.belong.to.us>

Björn Töpel <bjorn@kernel.org> writes:

> Björn Töpel <bjorn@kernel.org> writes:
>
>> Randy Dunlap <rdunlap@infradead.org> writes:
>>
>>> Hi,
>>>
>>> On 8/22/23 01:11, Björn Töpel wrote:
>>>> Randy Dunlap <rdunlap@infradead.org> writes:
>>>> 
>>>>> On 8/20/23 23:46, Stephen Rothwell wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> Changes since 20230818:
>>>>>>
>>>>>
>>>>> ../arch/riscv/kernel/traps.c: In function 'do_irq':
>>>>> ../arch/riscv/kernel/traps.c:384:1: error: s0 cannot be used in 'asm' here
>>>>>   384 | }
>>>>>       | ^
>>>>> ../arch/riscv/kernel/irq.c: In function 'do_softirq_own_stack':
>>>>> ../arch/riscv/kernel/irq.c:94:1: error: s0 cannot be used in 'asm' here
>>>>>    94 | }
>>>>>       | ^
>>>>>
>>>>>
>>>>> 2 out of 10 risc-v 64-bit builds failed with these errors.
>>>>>
>>>>> Is this a toolchain problem or something else?
>>>> 
>>>> Hmm, do you have a link to config/toolchain/log, or similar?
>>>
>>> The full randconfig file is attached.
>>>
>>> The toolchain is Arnd's build of gcc 13.1.0 from:
>>>   https://mirrors.edge.kernel.org/pub/tools/crosstool/
>>> (x86_64 host)
>>>
>>> Hm, I see that the latest/current there is gcc 13.2.0.
>>> I'll upgrade later today.
>>
>> Thanks Randy! I can reproduce with GCC 12 on my machine.
>>
>> The config has
>>  | # CONFIG_FRAME_POINTER is not set
>> but for some reason "-fno-omit-frame-pointer" is passed to GCC anyway,
>> which is why GCC complains about s0 (FP on RISC-V) in asm.
>>
>>
>> I'll dig a bit more.
>
> There are multiple issues:
>  * riscv enables -fno-omit-frame-pointer unconditionally for PERF_EVENTS
>  * CONFIG_FUNCTION_TRACER w/o dynamic ftrace enables -pg, which pulls in
>    -fno-omit-frame-pointer on riscv.

Maybe something like (too crude?):

diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 10e7a7ad175a..cd8075c092c3 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -62,6 +62,7 @@ config RISCV
        select COMMON_CLK
        select CPU_PM if CPU_IDLE || HIBERNATION
        select EDAC_SUPPORT
+       select FRAME_POINTER if PERF_EVENTS || (FUNCTION_TRACER && !DYNAMIC_FTRACE)
        select GENERIC_ARCH_TOPOLOGY
        select GENERIC_ATOMIC64 if !64BIT
        select GENERIC_CLOCKEVENTS_BROADCAST if SMP
diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
index 6ec6d52a4180..1329e060c548 100644
--- a/arch/riscv/Makefile
+++ b/arch/riscv/Makefile
@@ -87,9 +87,6 @@ endif
 ifeq ($(CONFIG_CMODEL_MEDANY),y)
        KBUILD_CFLAGS += -mcmodel=medany
 endif
-ifeq ($(CONFIG_PERF_EVENTS),y)
-        KBUILD_CFLAGS += -fno-omit-frame-pointer
-endif
 
 # Avoid generating .eh_frame sections.
 KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -fno-unwind-tables

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2023-08-23  7:52 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-21  6:46 linux-next: Tree for Aug 21 Stephen Rothwell
2023-08-21 19:13 ` linux-next: Tree for Aug 21 (sound/pci/hda/tas2781_hda_i2c.o) Randy Dunlap
2023-08-21 19:16 ` linux-next: Tree for Aug 21 (riscv-64 asm) Randy Dunlap
2023-08-21 19:16   ` Randy Dunlap
2023-08-22  8:11   ` Björn Töpel
2023-08-22  8:11     ` Björn Töpel
2023-08-22 15:26     ` Randy Dunlap
2023-08-22 15:26       ` Randy Dunlap
2023-08-23  6:59       ` Björn Töpel
2023-08-23  6:59         ` Björn Töpel
2023-08-23  7:37         ` Björn Töpel
2023-08-23  7:37           ` Björn Töpel
2023-08-23  7:52           ` Björn Töpel [this message]
2023-08-23  7:52             ` Björn Töpel
2023-08-22 23:22 ` linux-next: Tree for Aug 21 (drivers/power/supply/rt5033_charger.o) Randy Dunlap

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=87r0nu19i3.fsf@all.your.base.are.belong.to.us \
    --to=bjorn@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=rdunlap@infradead.org \
    --cc=sfr@canb.auug.org.au \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.