Re: [PATCH v5] RISC-V: Show accurate per-hart isa in /proc/cpuinfo
From: Conor Dooley <conor@kernel.org>
Date: 2023-08-25 23:29:07
Also in:
linux-riscv, lkml
On Fri, Aug 25, 2023 at 04:11:38PM -0700, Evan Green wrote:
In /proc/cpuinfo, most of the information we show for each processor is specific to that hart: marchid, mvendorid, mimpid, processor, hart, compatible, and the mmu size. But the ISA string gets filtered through a lowest common denominator mask, so that if one CPU is missing an ISA extension, no CPUs will show it. Now that we track the ISA extensions for each hart, let's report ISA extension info accurately per-hart in /proc/cpuinfo. We cannot change the "isa:" line, as usermode may be relying on that line to show only the common set of extensions supported across all harts. Add a new "hart isa" line instead, which reports the true set of extensions for that hart. Signed-off-by: Evan Green <redacted> Reviewed-by: Andrew Jones <redacted>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Can you drop this if you repost?
+"isa" vs "hart isa" lines in /proc/cpuinfo +------------------------------------------ + +The "isa" line in /proc/cpuinfo describes the lowest common denominator of +RISC-V ISA extensions recognized by the kernel and implemented on all harts. The +"hart isa" line, in contrast, describes the set of extensions recognized by the +kernel on the particular hart being described, even if those extensions may not +be present on all harts in the system.
In both cases, the presence of a feature +in these lines guarantees only that the hardware has the described capability. +Additional kernel support or policy control changes may be required before a +feature is fully usable by userspace programs.
I do not think that "in both cases" matches the expectations of userspace for the existing line. It's too late at night for me to think properly, but I think our existing implementation does work like you have documented for FD/V. I think I previously mentioned that it could misreport things for vector during the review of the vector series but forgot about it until now.
Attachments
- signature.asc [application/pgp-signature] 228 bytes