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

Conor Dooley conor at kernel.org
Wed May 15 10:30:36 PDT 2024


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 at 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 at 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-riscv/attachments/20240515/3844eaf8/attachment.sig>


More information about the linux-riscv mailing list