All of lore.kernel.org
 help / color / mirror / Atom feed
From: Palmer Dabbelt <palmer@sifive.com>
To: alistair23@gmail.com
Cc: Peter Maydell <peter.maydell@linaro.org>,
	qemu-riscv@nongnu.org, sagark@eecs.berkeley.edu,
	bastian@mail.uni-paderborn.de, qemu-devel@nongnu.org,
	Alistair Francis <Alistair.Francis@wdc.com>,
	zhiwei_liu@c-sky.com, aleksandar.m.mail@gmail.com
Subject: Re: [Qemu-devel] RISC-V: Vector && DSP Extension
Date: Wed, 21 Aug 2019 12:31:40 -0700 (PDT)	[thread overview]
Message-ID: <mhng-04cdd93a-df3e-4de0-b1f5-0365f2be0fab@palmer-si-x1c4> (raw)
In-Reply-To: <CAKmqyKM44ZAHgc5cYAiAXXtVG=dMcX1i7FLn+2mMwM1Av4Gqzg@mail.gmail.com>

On Thu, 15 Aug 2019 14:37:52 PDT (-0700), alistair23@gmail.com wrote:
> On Thu, Aug 15, 2019 at 2:07 AM Peter Maydell <peter.maydell@linaro.org> wrote:
>>
>> On Thu, 15 Aug 2019 at 09:53, Aleksandar Markovic
>> <aleksandar.m.mail@gmail.com> wrote:
>> >
>> > > We can accept draft
>> > > extensions in QEMU as long as they are disabled by default.
>>
>> > Hi, Alistair, Palmer,
>> >
>> > Is this an official stance of QEMU community, or perhaps Alistair's
>> > personal judgement, or maybe a rule within risv subcomunity?
>>
>> Alistair asked on a previous thread; my view was:
>> https://lists.gnu.org/archive/html/qemu-devel/2019-07/msg03364.html
>> and nobody else spoke up disagreeing (summary: should at least be
>> disabled-by-default and only enabled by setting an explicit
>> property whose name should start with the 'x-' prefix).
>
> Agreed!
>
>>
>> In general QEMU does sometimes introduce experimental extensions
>> (we've had them in the block layer, for example) and so the 'x-'
>> property to enable them is a reasonably established convention.
>> I think it's a reasonable compromise to allow this sort of work
>> to start and not have to live out-of-tree for a long time, without
>> confusing users or getting into a situation where some QEMU
>> versions behave differently or to obsolete drafts of a spec
>> without it being clear from the command line that experimental
>> extensions are being enabled.
>>
>> There is also an element of "submaintainer judgement" to be applied
>> here -- upstream is probably not the place for a draft extension
>> to be implemented if it is:
>>  * still fast moving or subject to major changes of design direction
>>  * major changes to the codebase (especially if it requires
>>    changes to core code) that might later need to be redone
>>    entirely differently
>>  * still experimental
>
> Yep, agreed. For RISC-V I think this would extend to only allowing
> extensions that have backing from the foundation and are under active
> discussion.

My general philosophy here is that we'll take anything written down in an 
official RISC-V ISA manual (ie, the ones actually released by the foundation).  
This provides a single source of truth for what an extension name / version 
means, which is important to avoid confusion.  If it's a ratified extension 
then I see no reason not to support it on my end.  For frozen extensions we 
should probably just wait the 45 days until they go up for a ratification vote, 
but I'd be happy to start reviewing patches then (or earlier :)).

If the spec is a draft in the ISA manual then we need to worry about the 
support burden, which I don't have a fixed criteria for -- generally there 
shouldn't be issues here, but early drafts can be in a state where they're 
going to change extensively and are unlikely to be used by anyone.  There's 
also the question of "what is an official release of a draft specification?".  

That's a bit awkward right now: the current ratified ISA manual contains 
version 0.3 of the hypervisor extension, but I just talked to Andrew and the 
plan is to remove the draft extensions from the ratified manuals because these 
drafts are old and the official manuals update slowly.  For now I guess we'll 
need an an-hoc way of determining if a draft extension has been officially 
versioned or not, which is a bit of a headache.

We already have examples of supporting draft extensions, including priv-1.9.1.  
This does cause some pain for us on the QEMU side (CSR bits have different 
semantics between the specs), but there's 1.9.1 hardware out there and the port 
continues to be useful so I'd be in favor of keeping it around for now.  I 
suppose there is an implicit risk that draft extensions will be deprecated, but 
the "x-" prefix, draft status, and long deprecation period should be sufficient 
to inform users of the risk.  I wouldn't be opposed to adding a "this is a 
draft ISA" warning, but I feel like it might be a bit overkill.

>
> Alistair
>
>>
>> thanks
>> -- PMM


WARNING: multiple messages have this Message-ID (diff)
From: Palmer Dabbelt <palmer@sifive.com>
To: alistair23@gmail.com
Cc: Peter Maydell <peter.maydell@linaro.org>,
	aleksandar.m.mail@gmail.com, qemu-riscv@nongnu.org,
	sagark@eecs.berkeley.edu, bastian@mail.uni-paderborn.de,
	qemu-devel@nongnu.org,
	 Alistair Francis <Alistair.Francis@wdc.com>,
	zhiwei_liu@c-sky.com
Subject: Re: [Qemu-riscv] [Qemu-devel] RISC-V: Vector && DSP Extension
Date: Wed, 21 Aug 2019 12:31:40 -0700 (PDT)	[thread overview]
Message-ID: <mhng-04cdd93a-df3e-4de0-b1f5-0365f2be0fab@palmer-si-x1c4> (raw)
In-Reply-To: <CAKmqyKM44ZAHgc5cYAiAXXtVG=dMcX1i7FLn+2mMwM1Av4Gqzg@mail.gmail.com>

On Thu, 15 Aug 2019 14:37:52 PDT (-0700), alistair23@gmail.com wrote:
> On Thu, Aug 15, 2019 at 2:07 AM Peter Maydell <peter.maydell@linaro.org> wrote:
>>
>> On Thu, 15 Aug 2019 at 09:53, Aleksandar Markovic
>> <aleksandar.m.mail@gmail.com> wrote:
>> >
>> > > We can accept draft
>> > > extensions in QEMU as long as they are disabled by default.
>>
>> > Hi, Alistair, Palmer,
>> >
>> > Is this an official stance of QEMU community, or perhaps Alistair's
>> > personal judgement, or maybe a rule within risv subcomunity?
>>
>> Alistair asked on a previous thread; my view was:
>> https://lists.gnu.org/archive/html/qemu-devel/2019-07/msg03364.html
>> and nobody else spoke up disagreeing (summary: should at least be
>> disabled-by-default and only enabled by setting an explicit
>> property whose name should start with the 'x-' prefix).
>
> Agreed!
>
>>
>> In general QEMU does sometimes introduce experimental extensions
>> (we've had them in the block layer, for example) and so the 'x-'
>> property to enable them is a reasonably established convention.
>> I think it's a reasonable compromise to allow this sort of work
>> to start and not have to live out-of-tree for a long time, without
>> confusing users or getting into a situation where some QEMU
>> versions behave differently or to obsolete drafts of a spec
>> without it being clear from the command line that experimental
>> extensions are being enabled.
>>
>> There is also an element of "submaintainer judgement" to be applied
>> here -- upstream is probably not the place for a draft extension
>> to be implemented if it is:
>>  * still fast moving or subject to major changes of design direction
>>  * major changes to the codebase (especially if it requires
>>    changes to core code) that might later need to be redone
>>    entirely differently
>>  * still experimental
>
> Yep, agreed. For RISC-V I think this would extend to only allowing
> extensions that have backing from the foundation and are under active
> discussion.

My general philosophy here is that we'll take anything written down in an 
official RISC-V ISA manual (ie, the ones actually released by the foundation).  
This provides a single source of truth for what an extension name / version 
means, which is important to avoid confusion.  If it's a ratified extension 
then I see no reason not to support it on my end.  For frozen extensions we 
should probably just wait the 45 days until they go up for a ratification vote, 
but I'd be happy to start reviewing patches then (or earlier :)).

If the spec is a draft in the ISA manual then we need to worry about the 
support burden, which I don't have a fixed criteria for -- generally there 
shouldn't be issues here, but early drafts can be in a state where they're 
going to change extensively and are unlikely to be used by anyone.  There's 
also the question of "what is an official release of a draft specification?".  

That's a bit awkward right now: the current ratified ISA manual contains 
version 0.3 of the hypervisor extension, but I just talked to Andrew and the 
plan is to remove the draft extensions from the ratified manuals because these 
drafts are old and the official manuals update slowly.  For now I guess we'll 
need an an-hoc way of determining if a draft extension has been officially 
versioned or not, which is a bit of a headache.

We already have examples of supporting draft extensions, including priv-1.9.1.  
This does cause some pain for us on the QEMU side (CSR bits have different 
semantics between the specs), but there's 1.9.1 hardware out there and the port 
continues to be useful so I'd be in favor of keeping it around for now.  I 
suppose there is an implicit risk that draft extensions will be deprecated, but 
the "x-" prefix, draft status, and long deprecation period should be sufficient 
to inform users of the risk.  I wouldn't be opposed to adding a "this is a 
draft ISA" warning, but I feel like it might be a bit overkill.

>
> Alistair
>
>>
>> thanks
>> -- PMM


  reply	other threads:[~2019-08-21 19:32 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-08  9:39 [Qemu-devel] RISC-V: Vector && DSP Extension liuzhiwei
2019-08-08  9:39 ` [Qemu-riscv] " liuzhiwei
2019-08-08 11:29 ` [Qemu-devel] " Aleksandar Markovic
2019-08-08 11:29   ` [Qemu-riscv] " Aleksandar Markovic
2019-08-08 13:48   ` Chih-Min Chao
2019-08-08 13:48     ` [Qemu-riscv] " Chih-Min Chao
2019-08-08 14:19     ` Aleksandar Markovic
2019-08-08 14:19       ` [Qemu-riscv] " Aleksandar Markovic
2019-08-10 13:35     ` LIU ZhiWei
2019-08-10 13:35       ` [Qemu-riscv] " LIU ZhiWei
2019-08-10  1:54 ` Alistair Francis
2019-08-10  1:54   ` [Qemu-riscv] " Alistair Francis
2019-08-10 13:55   ` LIU ZhiWei
2019-08-10 13:55     ` [Qemu-riscv] " LIU ZhiWei
2019-08-11 16:50     ` Alistair Francis
2019-08-11 16:50       ` [Qemu-riscv] " Alistair Francis
2019-08-15  8:53       ` Aleksandar Markovic
2019-08-15  8:53         ` [Qemu-riscv] " Aleksandar Markovic
2019-08-15  9:07         ` Peter Maydell
2019-08-15  9:07           ` [Qemu-riscv] " Peter Maydell
2019-08-15 10:32           ` Aleksandar Markovic
2019-08-15 10:32             ` [Qemu-riscv] " Aleksandar Markovic
2019-08-15 21:37           ` Alistair Francis
2019-08-15 21:37             ` [Qemu-riscv] " Alistair Francis
2019-08-21 19:31             ` Palmer Dabbelt [this message]
2019-08-21 19:31               ` Palmer Dabbelt
2019-08-21 23:10               ` [Qemu-devel] [Qemu-riscv] " Jonathan Behrens
2019-08-21 23:10                 ` [Qemu-riscv] [Qemu-devel] " Jonathan Behrens
2019-08-22  1:50               ` liuzhiwei
2019-08-22  1:50                 ` [Qemu-riscv] " liuzhiwei
2019-08-22 22:37                 ` Alistair Francis
2019-08-22 22:37                   ` [Qemu-riscv] " Alistair Francis
2019-08-28  0:25                   ` Palmer Dabbelt
2019-08-28  0:25                     ` [Qemu-riscv] " Palmer Dabbelt

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=mhng-04cdd93a-df3e-4de0-b1f5-0365f2be0fab@palmer-si-x1c4 \
    --to=palmer@sifive.com \
    --cc=Alistair.Francis@wdc.com \
    --cc=aleksandar.m.mail@gmail.com \
    --cc=alistair23@gmail.com \
    --cc=bastian@mail.uni-paderborn.de \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-riscv@nongnu.org \
    --cc=sagark@eecs.berkeley.edu \
    --cc=zhiwei_liu@c-sky.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 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.