diff mbox series

[v2] RISC-V: fix Andes errata build issues

Message ID 20240515-comic-sketch-3b40e6676f55@spud (mailing list archive)
State Superseded
Headers show
Series [v2] RISC-V: fix Andes errata build issues | expand

Checks

Context Check Description
conchuod/vmtest-for-next-PR fail PR summary
conchuod/patch-1-test-1 success .github/scripts/patches/tests/build_rv32_defconfig.sh
conchuod/patch-1-test-2 fail .github/scripts/patches/tests/build_rv64_clang_allmodconfig.sh
conchuod/patch-1-test-3 fail .github/scripts/patches/tests/build_rv64_gcc_allmodconfig.sh
conchuod/patch-1-test-4 success .github/scripts/patches/tests/build_rv64_nommu_k210_defconfig.sh
conchuod/patch-1-test-5 success .github/scripts/patches/tests/build_rv64_nommu_virt_defconfig.sh
conchuod/patch-1-test-6 warning .github/scripts/patches/tests/checkpatch.sh
conchuod/patch-1-test-7 success .github/scripts/patches/tests/dtb_warn_rv64.sh
conchuod/patch-1-test-8 success .github/scripts/patches/tests/header_inline.sh
conchuod/patch-1-test-9 success .github/scripts/patches/tests/kdoc.sh
conchuod/patch-1-test-10 success .github/scripts/patches/tests/module_param.sh
conchuod/patch-1-test-11 fail .github/scripts/patches/tests/verify_fixes.sh
conchuod/patch-1-test-12 success .github/scripts/patches/tests/verify_signedoff.sh

Commit Message

Conor Dooley May 15, 2024, 4:09 p.m. UTC
From: Conor Dooley <conor.dooley@microchip.com>

Commit e47c37c24024 ("riscv: Introduce vendor variants of extension
helpers") added includes for the new vendor_extensions.h header in
the T-Head and SiFive errata handling code but didn't do so for Andes,
resulting in allmodconfig build issues when commit 589e2fc85850
("riscv: Convert xandespmu to use the vendor extension framework")
added a user of a macro defined there.

Fixes: 589e2fc85850 ("riscv: Convert xandespmu to use the vendor extension framework")
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
v2: Fixup commit references in the commit message

CC: Paul Walmsley <paul.walmsley@sifive.com>
CC: Palmer Dabbelt <palmer@dabbelt.com>
CC: Conor Dooley <conor.dooley@microchip.com>
CC: Charlie Jenkins <charlie@rivosinc.com>
CC: linux-riscv@lists.infradead.org
CC: linux-kernel@vger.kernel.org
---
 arch/riscv/errata/andes/errata.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Charlie Jenkins May 15, 2024, 4:49 p.m. UTC | #1
On Wed, May 15, 2024 at 05:09:34PM +0100, Conor Dooley wrote:
> From: Conor Dooley <conor.dooley@microchip.com>
> 
> Commit e47c37c24024 ("riscv: Introduce vendor variants of extension
> helpers") added includes for the new vendor_extensions.h header in
> the T-Head and SiFive errata handling code but didn't do so for Andes,
> resulting in allmodconfig build issues when commit 589e2fc85850
> ("riscv: Convert xandespmu to use the vendor extension framework")
> added a user of a macro defined there.
> 
> Fixes: 589e2fc85850 ("riscv: Convert xandespmu to use the vendor extension framework")
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---
> v2: Fixup commit references in the commit message
> 
> CC: Paul Walmsley <paul.walmsley@sifive.com>
> CC: Palmer Dabbelt <palmer@dabbelt.com>
> CC: Conor Dooley <conor.dooley@microchip.com>
> CC: Charlie Jenkins <charlie@rivosinc.com>
> CC: linux-riscv@lists.infradead.org
> CC: linux-kernel@vger.kernel.org
> ---
>  arch/riscv/errata/andes/errata.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/riscv/errata/andes/errata.c b/arch/riscv/errata/andes/errata.c
> index a5d96a7a4682..fc1a34faa5f3 100644
> --- a/arch/riscv/errata/andes/errata.c
> +++ b/arch/riscv/errata/andes/errata.c
> @@ -17,6 +17,7 @@
>  #include <asm/processor.h>
>  #include <asm/sbi.h>
>  #include <asm/vendorid_list.h>
> +#include <asm/vendor_extensions.h>
>  
>  #define ANDES_AX45MP_MARCHID		0x8000000000008a45UL
>  #define ANDES_AX45MP_MIMPID		0x500UL
> -- 
> 2.43.0
> 

I was going to fix this in my next version but was waiting for the
reviews on the thead stuff. I wasn't anticipating these patches to be
able to jump the queue :)

Reviewed-by: Charlie Jenkins <charlie@rivosinc.com>
Conor Dooley May 15, 2024, 4:56 p.m. UTC | #2
On Wed, May 15, 2024 at 09:49:24AM -0700, Charlie Jenkins wrote:
> On Wed, May 15, 2024 at 05:09:34PM +0100, Conor Dooley wrote:
> > From: Conor Dooley <conor.dooley@microchip.com>
> > 
> > Commit e47c37c24024 ("riscv: Introduce vendor variants of extension
> > helpers") added includes for the new vendor_extensions.h header in
> > the T-Head and SiFive errata handling code but didn't do so for Andes,
> > resulting in allmodconfig build issues when commit 589e2fc85850
> > ("riscv: Convert xandespmu to use the vendor extension framework")
> > added a user of a macro defined there.
> > 
> > Fixes: 589e2fc85850 ("riscv: Convert xandespmu to use the vendor extension framework")
> > Signed-off-by: Conor Dooley <conor.dooley@microchip.com>

> 
> I was going to fix this in my next version but was waiting for the
> reviews on the thead stuff. I wasn't anticipating these patches to be
> able to jump the queue :)

Yah, the reason for that is I asked him to take the non-vector parts of
the series as 6.10 material so that we'd have less stuff movin' around
in cpufeatures.c so that Clement's Zc* + validation changes wouldn't run
into a bunch of conflicts etc. Same reason that I pushed for getting
Andy's vector subset stuff merged today, but that mighta been before you
hopped in.

Cheers,
Conor.
Charlie Jenkins May 15, 2024, 5:18 p.m. UTC | #3
On Wed, May 15, 2024 at 05:56:30PM +0100, Conor Dooley wrote:
> On Wed, May 15, 2024 at 09:49:24AM -0700, Charlie Jenkins wrote:
> > On Wed, May 15, 2024 at 05:09:34PM +0100, Conor Dooley wrote:
> > > From: Conor Dooley <conor.dooley@microchip.com>
> > > 
> > > Commit e47c37c24024 ("riscv: Introduce vendor variants of extension
> > > helpers") added includes for the new vendor_extensions.h header in
> > > the T-Head and SiFive errata handling code but didn't do so for Andes,
> > > resulting in allmodconfig build issues when commit 589e2fc85850
> > > ("riscv: Convert xandespmu to use the vendor extension framework")
> > > added a user of a macro defined there.
> > > 
> > > Fixes: 589e2fc85850 ("riscv: Convert xandespmu to use the vendor extension framework")
> > > Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> 
> > 
> > I was going to fix this in my next version but was waiting for the
> > reviews on the thead stuff. I wasn't anticipating these patches to be
> > able to jump the queue :)
> 
> Yah, the reason for that is I asked him to take the non-vector parts of
> the series as 6.10 material so that we'd have less stuff movin' around
> in cpufeatures.c so that Clement's Zc* + validation changes wouldn't run
> into a bunch of conflicts etc. Same reason that I pushed for getting
> Andy's vector subset stuff merged today, but that mighta been before you
> hopped in.
> 
> Cheers,
> Conor.

Yes I was a couple minutes late to the meeting, whoops. The subset of
patches that was pulled into for-next is odd to me because there is some
of the thead enablement code as part of the vendor extension enablement
so that there was a user for it. Since the subset on Palmer's for-next
does not have the rest of the thead code there is only a
half-implementation of the thead code, it allows the kernel to probe for
xtheadvector but it doesn't probe anywhere.

In my opinion, a better solution would be for me to get rid of the thead
code entirely from those patches. So that there is still a user, I can
replace the thead code with the andes versions.

Since Palmer already pulled in those changes maybe it's too late. There
is not a critical problem here, but it seems like it's bad practice to
introduce code without a user.

- Charlie
Conor Dooley May 15, 2024, 5:30 p.m. UTC | #4
On Wed, May 15, 2024 at 10:18:43AM -0700, Charlie Jenkins wrote:
> On Wed, May 15, 2024 at 05:56:30PM +0100, Conor Dooley wrote:
> > On Wed, May 15, 2024 at 09:49:24AM -0700, Charlie Jenkins wrote:
> > > On Wed, May 15, 2024 at 05:09:34PM +0100, Conor Dooley wrote:
> > > > From: Conor Dooley <conor.dooley@microchip.com>
> > > > 
> > > > Commit e47c37c24024 ("riscv: Introduce vendor variants of extension
> > > > helpers") added includes for the new vendor_extensions.h header in
> > > > the T-Head and SiFive errata handling code but didn't do so for Andes,
> > > > resulting in allmodconfig build issues when commit 589e2fc85850
> > > > ("riscv: Convert xandespmu to use the vendor extension framework")
> > > > added a user of a macro defined there.
> > > > 
> > > > Fixes: 589e2fc85850 ("riscv: Convert xandespmu to use the vendor extension framework")
> > > > Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> > 
> > > 
> > > I was going to fix this in my next version but was waiting for the
> > > reviews on the thead stuff. I wasn't anticipating these patches to be
> > > able to jump the queue :)
> > 
> > Yah, the reason for that is I asked him to take the non-vector parts of
> > the series as 6.10 material so that we'd have less stuff movin' around
> > in cpufeatures.c so that Clement's Zc* + validation changes wouldn't run
> > into a bunch of conflicts etc. Same reason that I pushed for getting
> > Andy's vector subset stuff merged today, but that mighta been before you
> > hopped in.
> > 
> > Cheers,
> > Conor.
> 
> Yes I was a couple minutes late to the meeting, whoops.


It's prob at like 0600 for you, so w/e.

> The subset of
> patches that was pulled into for-next is odd to me because there is some
> of the thead enablement code as part of the vendor extension enablement
> so that there was a user for it. Since the subset on Palmer's for-next
> does not have the rest of the thead code there is only a
> half-implementation of the thead code, it allows the kernel to probe for
> xtheadvector but it doesn't probe anywhere.

I dunno, I think that reporting that the extension is there constitutes a
user, it's not gonna be dead code. There's plenty of extensions for
which all we do is detect them and nothing more.

> In my opinion, a better solution would be for me to get rid of the thead
> code entirely from those patches. So that there is still a user, I can
> replace the thead code with the andes versions.

The Andes stuff is in the subset he applied though, so...
> 
> Since Palmer already pulled in those changes maybe it's too late. There
> is not a critical problem here, but it seems like it's bad practice to
> introduce code without a user.

...there is actually a "real" user in xandespmu. I did miss that
"riscv: Extend cpufeature.c to detect vendor extensions" actually
contained the xtheadvector detection though, rather than just the
infrastructure. I think it is probably harmless to have it, but
shouldn't be too hard to quickly drop the thead bits either I suppose
if you're worried about it.

Cheers,
Conor.
Charlie Jenkins May 15, 2024, 5:47 p.m. UTC | #5
On Wed, May 15, 2024 at 06:30:36PM +0100, Conor Dooley wrote:
> On Wed, May 15, 2024 at 10:18:43AM -0700, Charlie Jenkins wrote:
> > On Wed, May 15, 2024 at 05:56:30PM +0100, Conor Dooley wrote:
> > > On Wed, May 15, 2024 at 09:49:24AM -0700, Charlie Jenkins wrote:
> > > > On Wed, May 15, 2024 at 05:09:34PM +0100, Conor Dooley wrote:
> > > > > From: Conor Dooley <conor.dooley@microchip.com>
> > > > > 
> > > > > Commit e47c37c24024 ("riscv: Introduce vendor variants of extension
> > > > > helpers") added includes for the new vendor_extensions.h header in
> > > > > the T-Head and SiFive errata handling code but didn't do so for Andes,
> > > > > resulting in allmodconfig build issues when commit 589e2fc85850
> > > > > ("riscv: Convert xandespmu to use the vendor extension framework")
> > > > > added a user of a macro defined there.
> > > > > 
> > > > > Fixes: 589e2fc85850 ("riscv: Convert xandespmu to use the vendor extension framework")
> > > > > Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> > > 
> > > > 
> > > > I was going to fix this in my next version but was waiting for the
> > > > reviews on the thead stuff. I wasn't anticipating these patches to be
> > > > able to jump the queue :)
> > > 
> > > Yah, the reason for that is I asked him to take the non-vector parts of
> > > the series as 6.10 material so that we'd have less stuff movin' around
> > > in cpufeatures.c so that Clement's Zc* + validation changes wouldn't run
> > > into a bunch of conflicts etc. Same reason that I pushed for getting
> > > Andy's vector subset stuff merged today, but that mighta been before you
> > > hopped in.
> > > 
> > > Cheers,
> > > Conor.
> > 
> > Yes I was a couple minutes late to the meeting, whoops.
> 
> 
> It's prob at like 0600 for you, so w/e.
> 
> > The subset of
> > patches that was pulled into for-next is odd to me because there is some
> > of the thead enablement code as part of the vendor extension enablement
> > so that there was a user for it. Since the subset on Palmer's for-next
> > does not have the rest of the thead code there is only a
> > half-implementation of the thead code, it allows the kernel to probe for
> > xtheadvector but it doesn't probe anywhere.
> 
> I dunno, I think that reporting that the extension is there constitutes a
> user, it's not gonna be dead code. There's plenty of extensions for
> which all we do is detect them and nothing more.
> 
> > In my opinion, a better solution would be for me to get rid of the thead
> > code entirely from those patches. So that there is still a user, I can
> > replace the thead code with the andes versions.
> 
> The Andes stuff is in the subset he applied though, so...
> > 
> > Since Palmer already pulled in those changes maybe it's too late. There
> > is not a critical problem here, but it seems like it's bad practice to
> > introduce code without a user.
> 
> ...there is actually a "real" user in xandespmu. I did miss that

I meant there is no user of the xtheadvector addition.

> "riscv: Extend cpufeature.c to detect vendor extensions" actually
> contained the xtheadvector detection though, rather than just the
> infrastructure. I think it is probably harmless to have it, but
> shouldn't be too hard to quickly drop the thead bits either I suppose
> if you're worried about it.

And the adding vlenb to the DT patches is unrelated to the subset of the
series that was pulled into Palmer's for-next so spinning that off into
a different series would be more logical. This is kind of a pointless
rabbit hole I am getting into, but when we start splitting up series
the code contained in the patches start to diverge from the cover
letters that end up in the merge commits.

- Charlie

> 
> Cheers,
> Conor.
Conor Dooley May 15, 2024, 6:21 p.m. UTC | #6
On 15 May 2024 18:47:23 IST, Charlie Jenkins <charlie@rivosinc.com> wrote:
>On Wed, May 15, 2024 at 06:30:36PM +0100, Conor Dooley wrote:
>> On Wed, May 15, 2024 at 10:18:43AM -0700, Charlie Jenkins wrote:
>> > On Wed, May 15, 2024 at 05:56:30PM +0100, Conor Dooley wrote:
>> > > On Wed, May 15, 2024 at 09:49:24AM -0700, Charlie Jenkins wrote:
>> > > > On Wed, May 15, 2024 at 05:09:34PM +0100, Conor Dooley wrote:
>> > > > > From: Conor Dooley <conor.dooley@microchip.com>
>> > > > > 
>> > > > > Commit e47c37c24024 ("riscv: Introduce vendor variants of extension
>> > > > > helpers") added includes for the new vendor_extensions.h header in
>> > > > > the T-Head and SiFive errata handling code but didn't do so for Andes,
>> > > > > resulting in allmodconfig build issues when commit 589e2fc85850
>> > > > > ("riscv: Convert xandespmu to use the vendor extension framework")
>> > > > > added a user of a macro defined there.
>> > > > > 
>> > > > > Fixes: 589e2fc85850 ("riscv: Convert xandespmu to use the vendor extension framework")
>> > > > > Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
>> > > 
>> > > > 
>> > > > I was going to fix this in my next version but was waiting for the
>> > > > reviews on the thead stuff. I wasn't anticipating these patches to be
>> > > > able to jump the queue :)
>> > > 
>> > > Yah, the reason for that is I asked him to take the non-vector parts of
>> > > the series as 6.10 material so that we'd have less stuff movin' around
>> > > in cpufeatures.c so that Clement's Zc* + validation changes wouldn't run
>> > > into a bunch of conflicts etc. Same reason that I pushed for getting
>> > > Andy's vector subset stuff merged today, but that mighta been before you
>> > > hopped in.
>> > > 
>> > > Cheers,
>> > > Conor.
>> > 
>> > Yes I was a couple minutes late to the meeting, whoops.
>> 
>> 
>> It's prob at like 0600 for you, so w/e.
>> 
>> > The subset of
>> > patches that was pulled into for-next is odd to me because there is some
>> > of the thead enablement code as part of the vendor extension enablement
>> > so that there was a user for it. Since the subset on Palmer's for-next
>> > does not have the rest of the thead code there is only a
>> > half-implementation of the thead code, it allows the kernel to probe for
>> > xtheadvector but it doesn't probe anywhere.
>> 
>> I dunno, I think that reporting that the extension is there constitutes a
>> user, it's not gonna be dead code. There's plenty of extensions for
>> which all we do is detect them and nothing more.
>> 
>> > In my opinion, a better solution would be for me to get rid of the thead
>> > code entirely from those patches. So that there is still a user, I can
>> > replace the thead code with the andes versions.
>> 
>> The Andes stuff is in the subset he applied though, so...
>> > 
>> > Since Palmer already pulled in those changes maybe it's too late. There
>> > is not a critical problem here, but it seems like it's bad practice to
>> > introduce code without a user.
>> 
>> ...there is actually a "real" user in xandespmu. I did miss that
>
>I meant there is no user of the xtheadvector addition.
>
>> "riscv: Extend cpufeature.c to detect vendor extensions" actually
>> contained the xtheadvector detection though, rather than just the
>> infrastructure. I think it is probably harmless to have it, but
>> shouldn't be too hard to quickly drop the thead bits either I suppose
>> if you're worried about it.
>
>And the adding vlenb to the DT patches is unrelated to the subset of the
>series that was pulled into Palmer's for-next so spinning that off into
>a different series would be more logical. This is kind of a pointless
>rabbit hole I am getting into, but when we start splitting up series
>the code contained in the patches start to diverge from the cover
>letters that end up in the merge commits.

 The vlenb stuff is also one of the things that I want, it's useful for the validation stuff that Clement is adding.
Charlie Jenkins May 15, 2024, 6:23 p.m. UTC | #7
On Wed, May 15, 2024 at 07:21:16PM +0100, Conor Dooley wrote:
> 
> 
> On 15 May 2024 18:47:23 IST, Charlie Jenkins <charlie@rivosinc.com> wrote:
> >On Wed, May 15, 2024 at 06:30:36PM +0100, Conor Dooley wrote:
> >> On Wed, May 15, 2024 at 10:18:43AM -0700, Charlie Jenkins wrote:
> >> > On Wed, May 15, 2024 at 05:56:30PM +0100, Conor Dooley wrote:
> >> > > On Wed, May 15, 2024 at 09:49:24AM -0700, Charlie Jenkins wrote:
> >> > > > On Wed, May 15, 2024 at 05:09:34PM +0100, Conor Dooley wrote:
> >> > > > > From: Conor Dooley <conor.dooley@microchip.com>
> >> > > > > 
> >> > > > > Commit e47c37c24024 ("riscv: Introduce vendor variants of extension
> >> > > > > helpers") added includes for the new vendor_extensions.h header in
> >> > > > > the T-Head and SiFive errata handling code but didn't do so for Andes,
> >> > > > > resulting in allmodconfig build issues when commit 589e2fc85850
> >> > > > > ("riscv: Convert xandespmu to use the vendor extension framework")
> >> > > > > added a user of a macro defined there.
> >> > > > > 
> >> > > > > Fixes: 589e2fc85850 ("riscv: Convert xandespmu to use the vendor extension framework")
> >> > > > > Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> >> > > 
> >> > > > 
> >> > > > I was going to fix this in my next version but was waiting for the
> >> > > > reviews on the thead stuff. I wasn't anticipating these patches to be
> >> > > > able to jump the queue :)
> >> > > 
> >> > > Yah, the reason for that is I asked him to take the non-vector parts of
> >> > > the series as 6.10 material so that we'd have less stuff movin' around
> >> > > in cpufeatures.c so that Clement's Zc* + validation changes wouldn't run
> >> > > into a bunch of conflicts etc. Same reason that I pushed for getting
> >> > > Andy's vector subset stuff merged today, but that mighta been before you
> >> > > hopped in.
> >> > > 
> >> > > Cheers,
> >> > > Conor.
> >> > 
> >> > Yes I was a couple minutes late to the meeting, whoops.
> >> 
> >> 
> >> It's prob at like 0600 for you, so w/e.
> >> 
> >> > The subset of
> >> > patches that was pulled into for-next is odd to me because there is some
> >> > of the thead enablement code as part of the vendor extension enablement
> >> > so that there was a user for it. Since the subset on Palmer's for-next
> >> > does not have the rest of the thead code there is only a
> >> > half-implementation of the thead code, it allows the kernel to probe for
> >> > xtheadvector but it doesn't probe anywhere.
> >> 
> >> I dunno, I think that reporting that the extension is there constitutes a
> >> user, it's not gonna be dead code. There's plenty of extensions for
> >> which all we do is detect them and nothing more.
> >> 
> >> > In my opinion, a better solution would be for me to get rid of the thead
> >> > code entirely from those patches. So that there is still a user, I can
> >> > replace the thead code with the andes versions.
> >> 
> >> The Andes stuff is in the subset he applied though, so...
> >> > 
> >> > Since Palmer already pulled in those changes maybe it's too late. There
> >> > is not a critical problem here, but it seems like it's bad practice to
> >> > introduce code without a user.
> >> 
> >> ...there is actually a "real" user in xandespmu. I did miss that
> >
> >I meant there is no user of the xtheadvector addition.
> >
> >> "riscv: Extend cpufeature.c to detect vendor extensions" actually
> >> contained the xtheadvector detection though, rather than just the
> >> infrastructure. I think it is probably harmless to have it, but
> >> shouldn't be too hard to quickly drop the thead bits either I suppose
> >> if you're worried about it.
> >
> >And the adding vlenb to the DT patches is unrelated to the subset of the
> >series that was pulled into Palmer's for-next so spinning that off into
> >a different series would be more logical. This is kind of a pointless
> >rabbit hole I am getting into, but when we start splitting up series
> >the code contained in the patches start to diverge from the cover
> >letters that end up in the merge commits.
> 
>  The vlenb stuff is also one of the things that I want, it's useful for the validation stuff that Clement is adding.

It's definitely useful to have and it's ready, I was wondering if it
made more sense for me to send it out as a different series to get it
merged in.
diff mbox series

Patch

diff --git a/arch/riscv/errata/andes/errata.c b/arch/riscv/errata/andes/errata.c
index a5d96a7a4682..fc1a34faa5f3 100644
--- a/arch/riscv/errata/andes/errata.c
+++ b/arch/riscv/errata/andes/errata.c
@@ -17,6 +17,7 @@ 
 #include <asm/processor.h>
 #include <asm/sbi.h>
 #include <asm/vendorid_list.h>
+#include <asm/vendor_extensions.h>
 
 #define ANDES_AX45MP_MARCHID		0x8000000000008a45UL
 #define ANDES_AX45MP_MIMPID		0x500UL