public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Conor Dooley <conor@kernel.org>
To: "Clément Léger" <cleger@rivosinc.com>
Cc: Evan Green <evan@rivosinc.com>,
	Jerry Shih <jerry.shih@sifive.com>,
	linux-riscv@lists.infradead.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
	Palmer Dabbelt <palmer@rivosinc.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Jonathan Corbet <corbet@lwn.net>,
	Andrew Jones <ajones@ventanamicro.com>,
	Samuel Ortiz <sameo@rivosinc.com>
Subject: Re: [PATCH v2 05/19] riscv: add ISA extension parsing for vector crypto extensions
Date: Thu, 19 Oct 2023 16:33:12 +0100	[thread overview]
Message-ID: <20231019-nuclear-vista-ef3e0b9bef71@spud> (raw)
In-Reply-To: <7626f978-e9ea-4f8f-b814-aeac02bd3712@rivosinc.com>

[-- Attachment #1: Type: text/plain, Size: 3426 bytes --]

On Thu, Oct 19, 2023 at 11:35:59AM +0200, Clément Léger wrote:
> 
> 
> On 18/10/2023 19:26, Evan Green wrote:
> > On Wed, Oct 18, 2023 at 5:53 AM Clément Léger <cleger@rivosinc.com> wrote:
> >>
> >>
> >>
> >> On 18/10/2023 03:45, Jerry Shih wrote:
> >>> On Oct 17, 2023, at 21:14, Clément Léger <cleger@rivosinc.com> wrote:
> >>>> @@ -221,6 +261,22 @@ const struct riscv_isa_ext_data riscv_isa_ext[] = {
> >>>>      __RISCV_ISA_EXT_DATA(zkt, RISCV_ISA_EXT_ZKT),
> >>>>      __RISCV_ISA_EXT_DATA(zksed, RISCV_ISA_EXT_ZKSED),
> >>>>      __RISCV_ISA_EXT_DATA(zksh, RISCV_ISA_EXT_ZKSH),
> >>>> +    __RISCV_ISA_EXT_DATA(zvbb, RISCV_ISA_EXT_ZVBB),
> >>>> +    __RISCV_ISA_EXT_DATA(zvbc, RISCV_ISA_EXT_ZVBC),
> >>>> +    __RISCV_ISA_EXT_DATA(zvkb, RISCV_ISA_EXT_ZVKB),
> >>>
> >>> The `Zvkb` is the subset of `Zvbb`[1]. So, the `Zvkb` should be bundled with `Zvbb`.
> >>
> >> Hi Jerry,
> >>
> >> Thanks for catching this, I think some other extensions will fall in
> >> this category as well then (Zvknha/Zvknhb). I will verify that.
> > 
> > The bundling mechanism works well when an extension is a pure lasso
> > around other extensions. We'd have to tweak that code if we wanted to
> > support cases like this, where the extension is a superset of others,
> > but also contains loose change not present anywhere else (and
> > therefore also needs to stand as a separate bit).
> 
> For Zvbb and Zvknhb, I used the following code:
> 
> static const unsigned int riscv_zvbb_bundled_exts[] = {
> 	RISCV_ISA_EXT_ZVKB,
> 	RISCV_ISA_EXT_ZVBB
> };
> 
> static const unsigned int riscv_zvknhb_bundled_exts[] = {
> 	RISCV_ISA_EXT_ZVKNHA,
> 	RISCV_ISA_EXT_ZVKNHB
> };
> 
> Which correctly results in both extension (superset + base set) being
> enabled when only one is set. Is there something that I'm missing ?
> 
> > 
> > IMO, decomposing "pure" bundles makes sense since otherwise usermode
> > would have to query multiple distinct bitmaps that meant the same
> > thing (eg check the Zk bit, or maybe check the Zkn/Zkr/Zkt bits, or
> > maybe check the Zbkb/Zbkc... bits, and they're all equivalent). But
> > when an extension is a superset that also contains loose change, there
> > really aren't two equivalent bitmasks, each bit adds something new.
> 
> Agreed but if a system only report ZVBB for instance and the user wants
> ZVKB, then it is clear that ZVKB should be reported as well I guess. So
> in the end, it works much like "bundle" extension, just that the bundle
> is actually a "real" ISA extension by itself.
> 
> Clément
> 
> > 
> > There's an argument to be made for still turning on the containing
> > extensions to cover for silly ISA strings (eg ISA strings that
> > advertise the superset but fail to advertise the containing
> > extensions). We can decide if we want to work that hard to cover
> > hypothetical broken ISA strings now, or wait until they show up.
> > Personally I would wait until something broken shows up. But others
> > may feel differently.

I'm not really sure that those are "silly" ISA strings. People are going
to do it that way because it is much easier than spelling out 5 dozen
sub-components, and it is pretty inevitable that subsets will be
introduced in the future for extensions we currently have.

IMO, it's perfectly valid to say you have the supersets and not spell
out all the subcomponents.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2023-10-19 15:33 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-17 13:14 [PATCH v2 00/19] riscv: report more ISA extensions through hwprobe Clément Léger
2023-10-17 13:14 ` [PATCH v2 01/19] riscv: hwprobe: factorize hwprobe ISA extension reporting Clément Léger
2023-10-18 17:24   ` Evan Green
2023-10-18 17:33     ` Conor Dooley
2023-10-18 17:36       ` Conor Dooley
2023-10-18 17:45         ` Evan Green
2023-10-19  9:46           ` Clément Léger
2023-10-19 10:24             ` Conor Dooley
2023-10-19 15:58               ` Evan Green
2023-10-19  7:26         ` Clément Léger
2023-10-19 10:22           ` Conor Dooley
2023-10-19 12:29             ` Clément Léger
2023-10-20 10:27             ` Andrew Jones
2023-10-17 13:14 ` [PATCH v2 02/19] riscv: add ISA extension parsing for scalar crypto Clément Léger
2023-10-23 16:21   ` Evan Green
2023-10-24  7:18     ` Clément Léger
2023-10-24  9:30       ` Clément Léger
2023-10-24 16:37         ` Evan Green
2023-10-24 18:11           ` Clément Léger
2023-10-17 13:14 ` [PATCH v2 03/19] riscv: hwprobe: add support for scalar crypto ISA extensions Clément Léger
2023-10-18 17:24   ` Evan Green
2023-10-19  7:21     ` Clément Léger
2023-10-17 13:14 ` [PATCH v2 04/19] dt-bindings: riscv: add scalar crypto ISA extensions description Clément Léger
2023-10-17 13:14 ` [PATCH v2 05/19] riscv: add ISA extension parsing for vector crypto extensions Clément Léger
2023-10-18  1:45   ` Jerry Shih
2023-10-18 12:52     ` Clément Léger
2023-10-18 17:26       ` Evan Green
2023-10-19  9:35         ` Clément Léger
2023-10-19 15:33           ` Conor Dooley [this message]
2023-10-19 16:19             ` Evan Green
2023-10-23  7:24               ` Clément Léger
2023-10-23 16:18                 ` Evan Green
2023-10-20  2:43           ` Jerry Shih
2023-10-23  7:14             ` Clément Léger
2023-10-17 13:14 ` [PATCH v2 06/19] riscv: hwprobe: export vector crypto ISA extensions Clément Léger
2023-10-18 17:27   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 07/19] dt-bindings: riscv: add vector crypto ISA extensions description Clément Léger
2023-10-17 13:14 ` [PATCH v2 08/19] riscv: add ISA extension parsing for Zfh/Zfhmin Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 09/19] riscv: hwprobe: export Zfh/Zfhmin ISA extensions Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 10/19] dt-bindings: riscv: add Zfh[min] ISA extensions description Clément Léger
2023-10-17 13:14 ` [PATCH v2 11/19] riscv: add ISA extension parsing for Zihintntl Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 12/19] riscv: hwprobe: export Zhintntl ISA extension Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 13/19] dt-bindings: riscv: add Zihintntl ISA extension description Clément Léger
2023-10-17 13:14 ` [PATCH v2 14/19] riscv: add ISA extension parsing for Zvfh[min] Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 15/19] riscv: hwprobe: export Zvfh[min] ISA extensions Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 16/19] dt-bindings: riscv: add Zvfh[min] ISA extension description Clément Léger
2023-10-17 13:14 ` [PATCH v2 17/19] riscv: add ISA extension parsing for Zfa Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 18/19] riscv: hwprobe: export Zfa ISA extension Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 19/19] dt-bindings: riscv: add Zfa ISA extension description Clément Léger

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=20231019-nuclear-vista-ef3e0b9bef71@spud \
    --to=conor@kernel.org \
    --cc=ajones@ventanamicro.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=cleger@rivosinc.com \
    --cc=corbet@lwn.net \
    --cc=devicetree@vger.kernel.org \
    --cc=evan@rivosinc.com \
    --cc=jerry.shih@sifive.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=palmer@rivosinc.com \
    --cc=paul.walmsley@sifive.com \
    --cc=robh+dt@kernel.org \
    --cc=sameo@rivosinc.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox