All of lore.kernel.org
 help / color / mirror / Atom feed
From: Conor Dooley <conor@kernel.org>
To: "Clément Léger" <cleger@rivosinc.com>
Cc: Andrew Jones <ajones@ventanamicro.com>,
	guoren@kernel.org, linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org, Guo Ren <guoren@linux.alibaba.com>,
	paul.walmsley@sifive.com, palmer@dabbelt.com,
	panqinglin2020@iscas.ac.cn, bjorn@rivosinc.com,
	conor.dooley@microchip.com, leobras@redhat.com,
	peterz@infradead.org, keescook@chromium.org,
	wuwei2016@iscas.ac.cn, xiaoguang.xing@sophgo.com,
	chao.wei@sophgo.com, unicorn_wang@outlook.com, uwu@icenowy.me,
	jszhang@kernel.org, wefu@redhat.com, atishp@atishpatra.org
Subject: Re: [PATCH V2 1/3] riscv: Add Zicbop instruction definitions & cpufeature
Date: Thu, 11 Jan 2024 11:12:33 +0000	[thread overview]
Message-ID: <20240111-populate-sterilize-8e241ead0b00@spud> (raw)
In-Reply-To: <78afc7ce-c6ce-4edd-b91a-1f8a94ce298a@rivosinc.com>

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

On Thu, Jan 11, 2024 at 11:49:48AM +0100, Clément Léger wrote:
> 
> 
> On 11/01/2024 11:45, Andrew Jones wrote:
> > On Thu, Jan 11, 2024 at 11:31:32AM +0100, Clément Léger wrote:
> >>
> >>
> >> On 03/01/2024 13:00, Andrew Jones wrote:
> >>> On Wed, Jan 03, 2024 at 10:31:37AM +0100, Clément Léger wrote:
> >>>>
> >>>>
> >>>> On 31/12/2023 09:29, guoren@kernel.org wrote:
> >>>>> From: Guo Ren <guoren@linux.alibaba.com>
> >>>>>
> >>>>> Cache-block prefetch instructions are HINTs to the hardware to
> >>>>> indicate that software intends to perform a particular type of
> >>>>> memory access in the near future. This patch adds prefetch.i,
> >>>>> prefetch.r and prefetch.w instruction definitions by
> >>>>> RISCV_ISA_EXT_ZICBOP cpufeature.
> >>>>>
> >>>>> Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
> >>>>> Signed-off-by: Guo Ren <guoren@kernel.org>
> >>>>> ---
> >>>>>  arch/riscv/Kconfig                | 15 ++++++++
> >>>>>  arch/riscv/include/asm/hwcap.h    |  1 +
> >>>>>  arch/riscv/include/asm/insn-def.h | 60 +++++++++++++++++++++++++++++++
> >>>>>  arch/riscv/kernel/cpufeature.c    |  1 +
> >>>>>  4 files changed, 77 insertions(+)
> >>>>>
> >>>>> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> >>>>> index 24c1799e2ec4..fcbd417d65ea 100644
> >>>>> --- a/arch/riscv/Kconfig
> >>>>> +++ b/arch/riscv/Kconfig
> >>>>> @@ -579,6 +579,21 @@ config RISCV_ISA_ZICBOZ
> >>>>>  
> >>>>>  	   If you don't know what to do here, say Y.
> >>>>>  
> >>>>> +config RISCV_ISA_ZICBOP
> >>>>> +	bool "Zicbop extension support for cache block prefetch"
> >>>>> +	depends on MMU
> >>>>> +	depends on RISCV_ALTERNATIVE
> >>>>> +	default y
> >>>>> +	help
> >>>>> +	  Adds support to dynamically detect the presence of the ZICBOP
> >>>>> +	  extension (Cache Block Prefetch Operations) and enable its
> >>>>> +	  usage.
> >>>>> +
> >>>>> +	  The Zicbop extension can be used to prefetch cache block for
> >>>>> +	  read/write fetch.
> >>>>> +
> >>>>> +	  If you don't know what to do here, say Y.
> >>>>> +
> >>>>>  config TOOLCHAIN_HAS_ZIHINTPAUSE
> >>>>>  	bool
> >>>>>  	default y
> >>>>> diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h
> >>>>> index 06d30526ef3b..77d3b6ee25ab 100644
> >>>>> --- a/arch/riscv/include/asm/hwcap.h
> >>>>> +++ b/arch/riscv/include/asm/hwcap.h
> >>>>> @@ -57,6 +57,7 @@
> >>>>>  #define RISCV_ISA_EXT_ZIHPM		42
> >>>>>  #define RISCV_ISA_EXT_SMSTATEEN		43
> >>>>>  #define RISCV_ISA_EXT_ZICOND		44
> >>>>> +#define RISCV_ISA_EXT_ZICBOP		45
> >>>>
> >>>> Hi Guo,
> >>>>
> >>>> Since you are adding support for the Zicbop extension, you could
> >>>> probably also allow to probe it from userspace using hwprobe. Add a few
> >>>> definitions to sys_riscv.c/hwprobe.h and it will be fine.
> >>>
> >>> To expose to userspace, we should also start parsing the block size,
> >>> so it can also be exposed to userspace. Starting to parse the block
> >>> size first requires that we decide we need to parse the block size
> >>> (see [1]).
> >>
> >> Hi Andrew, thanks for the thread.
> >>
> >> I read it (and the other ones that are related to it) and basically, it
> >> seems there was a first decision (expose Zicbop block size indivudally)
> >> due to the fact the specification did not mentioned anything specific
> >> about clock sizes  but then after that, there was a clarification in the
> >> spec stating that Zicbop and Zicbom have the same block size so the
> >> first decision was questioned again.
> >>
> >> From a user coherency point of view, I think it would make more sense to
> >> expose it individually in hwprobe  so that zicboz, zicbop and zicbom
> >> have their "own" block size (even though zicbop and zicbom would use the
> >> same one). Moreover, it would allow us for future evolution easily
> >> without breaking any userspace later if zicbop and zicbom block size are
> >> decoupled.
> > 
> > I agree and QEMU has already headed down the road of generating
> > riscv,cbop-block-size (I guess Conor's ack on [1] was interpreted as
> > being sufficient to merge the QEMU bits), so we can add the Linux
> > support and test with QEMU now. The work could probably be a separate
> > series to this one, though.
> 
> Yes, it QEMU had it merged. and agreed, since this requires a bit more
> plumbing, it can probably be left out of this series. I could probably
> take care of that later.

I think some crack slippage happened with that patch. I pinged Palmer
about it on irc.



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

WARNING: multiple messages have this Message-ID (diff)
From: Conor Dooley <conor@kernel.org>
To: "Clément Léger" <cleger@rivosinc.com>
Cc: panqinglin2020@iscas.ac.cn, Guo Ren <guoren@linux.alibaba.com>,
	keescook@chromium.org, wefu@redhat.com, peterz@infradead.org,
	unicorn_wang@outlook.com, atishp@atishpatra.org,
	chao.wei@sophgo.com, linux-kernel@vger.kernel.org,
	bjorn@rivosinc.com, xiaoguang.xing@sophgo.com,
	conor.dooley@microchip.com, leobras@redhat.com,
	guoren@kernel.org, jszhang@kernel.org, paul.walmsley@sifive.com,
	palmer@dabbelt.com, linux-riscv@lists.infradead.org,
	wuwei2016@iscas.ac.cn, Andrew Jones <ajones@ventanamicro.com>
Subject: Re: [PATCH V2 1/3] riscv: Add Zicbop instruction definitions & cpufeature
Date: Thu, 11 Jan 2024 11:12:33 +0000	[thread overview]
Message-ID: <20240111-populate-sterilize-8e241ead0b00@spud> (raw)
In-Reply-To: <78afc7ce-c6ce-4edd-b91a-1f8a94ce298a@rivosinc.com>


[-- Attachment #1.1: Type: text/plain, Size: 4564 bytes --]

On Thu, Jan 11, 2024 at 11:49:48AM +0100, Clément Léger wrote:
> 
> 
> On 11/01/2024 11:45, Andrew Jones wrote:
> > On Thu, Jan 11, 2024 at 11:31:32AM +0100, Clément Léger wrote:
> >>
> >>
> >> On 03/01/2024 13:00, Andrew Jones wrote:
> >>> On Wed, Jan 03, 2024 at 10:31:37AM +0100, Clément Léger wrote:
> >>>>
> >>>>
> >>>> On 31/12/2023 09:29, guoren@kernel.org wrote:
> >>>>> From: Guo Ren <guoren@linux.alibaba.com>
> >>>>>
> >>>>> Cache-block prefetch instructions are HINTs to the hardware to
> >>>>> indicate that software intends to perform a particular type of
> >>>>> memory access in the near future. This patch adds prefetch.i,
> >>>>> prefetch.r and prefetch.w instruction definitions by
> >>>>> RISCV_ISA_EXT_ZICBOP cpufeature.
> >>>>>
> >>>>> Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
> >>>>> Signed-off-by: Guo Ren <guoren@kernel.org>
> >>>>> ---
> >>>>>  arch/riscv/Kconfig                | 15 ++++++++
> >>>>>  arch/riscv/include/asm/hwcap.h    |  1 +
> >>>>>  arch/riscv/include/asm/insn-def.h | 60 +++++++++++++++++++++++++++++++
> >>>>>  arch/riscv/kernel/cpufeature.c    |  1 +
> >>>>>  4 files changed, 77 insertions(+)
> >>>>>
> >>>>> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> >>>>> index 24c1799e2ec4..fcbd417d65ea 100644
> >>>>> --- a/arch/riscv/Kconfig
> >>>>> +++ b/arch/riscv/Kconfig
> >>>>> @@ -579,6 +579,21 @@ config RISCV_ISA_ZICBOZ
> >>>>>  
> >>>>>  	   If you don't know what to do here, say Y.
> >>>>>  
> >>>>> +config RISCV_ISA_ZICBOP
> >>>>> +	bool "Zicbop extension support for cache block prefetch"
> >>>>> +	depends on MMU
> >>>>> +	depends on RISCV_ALTERNATIVE
> >>>>> +	default y
> >>>>> +	help
> >>>>> +	  Adds support to dynamically detect the presence of the ZICBOP
> >>>>> +	  extension (Cache Block Prefetch Operations) and enable its
> >>>>> +	  usage.
> >>>>> +
> >>>>> +	  The Zicbop extension can be used to prefetch cache block for
> >>>>> +	  read/write fetch.
> >>>>> +
> >>>>> +	  If you don't know what to do here, say Y.
> >>>>> +
> >>>>>  config TOOLCHAIN_HAS_ZIHINTPAUSE
> >>>>>  	bool
> >>>>>  	default y
> >>>>> diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h
> >>>>> index 06d30526ef3b..77d3b6ee25ab 100644
> >>>>> --- a/arch/riscv/include/asm/hwcap.h
> >>>>> +++ b/arch/riscv/include/asm/hwcap.h
> >>>>> @@ -57,6 +57,7 @@
> >>>>>  #define RISCV_ISA_EXT_ZIHPM		42
> >>>>>  #define RISCV_ISA_EXT_SMSTATEEN		43
> >>>>>  #define RISCV_ISA_EXT_ZICOND		44
> >>>>> +#define RISCV_ISA_EXT_ZICBOP		45
> >>>>
> >>>> Hi Guo,
> >>>>
> >>>> Since you are adding support for the Zicbop extension, you could
> >>>> probably also allow to probe it from userspace using hwprobe. Add a few
> >>>> definitions to sys_riscv.c/hwprobe.h and it will be fine.
> >>>
> >>> To expose to userspace, we should also start parsing the block size,
> >>> so it can also be exposed to userspace. Starting to parse the block
> >>> size first requires that we decide we need to parse the block size
> >>> (see [1]).
> >>
> >> Hi Andrew, thanks for the thread.
> >>
> >> I read it (and the other ones that are related to it) and basically, it
> >> seems there was a first decision (expose Zicbop block size indivudally)
> >> due to the fact the specification did not mentioned anything specific
> >> about clock sizes  but then after that, there was a clarification in the
> >> spec stating that Zicbop and Zicbom have the same block size so the
> >> first decision was questioned again.
> >>
> >> From a user coherency point of view, I think it would make more sense to
> >> expose it individually in hwprobe  so that zicboz, zicbop and zicbom
> >> have their "own" block size (even though zicbop and zicbom would use the
> >> same one). Moreover, it would allow us for future evolution easily
> >> without breaking any userspace later if zicbop and zicbom block size are
> >> decoupled.
> > 
> > I agree and QEMU has already headed down the road of generating
> > riscv,cbop-block-size (I guess Conor's ack on [1] was interpreted as
> > being sufficient to merge the QEMU bits), so we can add the Linux
> > support and test with QEMU now. The work could probably be a separate
> > series to this one, though.
> 
> Yes, it QEMU had it merged. and agreed, since this requires a bit more
> plumbing, it can probably be left out of this series. I could probably
> take care of that later.

I think some crack slippage happened with that patch. I pinged Palmer
about it on irc.



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

[-- Attachment #2: Type: text/plain, Size: 161 bytes --]

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2024-01-11 11:12 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-31  8:29 [PATCH V2 0/3] riscv: Add Zicbop & prefetchw support guoren
2023-12-31  8:29 ` guoren
2023-12-31  8:29 ` [PATCH V2 1/3] riscv: Add Zicbop instruction definitions & cpufeature guoren
2023-12-31  8:29   ` guoren
2024-01-02 10:32   ` Andrew Jones
2024-01-02 10:32     ` Andrew Jones
2024-01-03  6:13     ` Guo Ren
2024-01-03  6:13       ` Guo Ren
2024-01-03  6:49       ` Andrew Jones
2024-01-03  6:49         ` Andrew Jones
2024-01-03 19:44         ` Andrew Jones
2024-01-03 19:44           ` Andrew Jones
2024-01-03 19:06     ` Leonardo Bras
2024-01-03 19:06       ` Leonardo Bras
2024-01-03  9:31   ` Clément Léger
2024-01-03  9:31     ` Clément Léger
2024-01-03 12:00     ` Andrew Jones
2024-01-03 12:00       ` Andrew Jones
2024-01-11 10:31       ` Clément Léger
2024-01-11 10:31         ` Clément Léger
2024-01-11 10:45         ` Andrew Jones
2024-01-11 10:45           ` Andrew Jones
2024-01-11 10:49           ` Clément Léger
2024-01-11 10:49             ` Clément Léger
2024-01-11 11:12             ` Conor Dooley [this message]
2024-01-11 11:12               ` Conor Dooley
2024-01-03 18:52   ` Leonardo Bras
2024-01-03 18:52     ` Leonardo Bras
2024-01-03 19:29     ` Andrew Jones
2024-01-03 19:29       ` Andrew Jones
2024-01-03 20:33       ` Leonardo Bras
2024-01-03 20:33         ` Leonardo Bras
2024-01-04  9:47         ` Andrew Jones
2024-01-04  9:47           ` Andrew Jones
2024-01-04 15:03           ` Leonardo Bras
2024-01-04 15:03             ` Leonardo Bras
2024-01-04 16:40             ` Andrew Jones
2024-01-04 16:40               ` Andrew Jones
2024-01-04 17:43               ` Leonardo Bras
2024-01-04 17:43                 ` Leonardo Bras
2024-01-05 13:24                 ` Andrew Jones
2024-01-05 13:24                   ` Andrew Jones
2024-01-08 14:34                   ` Leonardo Bras
2024-01-08 14:34                     ` Leonardo Bras
2024-01-08 15:24                     ` Andrew Jones
2024-01-08 15:24                       ` Andrew Jones
2024-01-08 16:14                       ` Leonardo Bras
2024-01-08 16:14                         ` Leonardo Bras
2024-01-03 19:48   ` Andrew Jones
2024-01-03 19:48     ` Andrew Jones
2024-01-03 20:34     ` Leonardo Bras
2024-01-03 20:34       ` Leonardo Bras
2023-12-31  8:29 ` [PATCH V2 2/3] riscv: Add ARCH_HAS_PRETCHW support with Zibop guoren
2023-12-31  8:29   ` guoren
2024-01-01  2:29   ` Guo Ren
2024-01-01  2:29     ` Guo Ren
2024-01-03 19:04     ` Leonardo Bras
2024-01-03 19:04       ` Leonardo Bras
2024-01-02 10:45   ` Andrew Jones
2024-01-02 10:45     ` Andrew Jones
2024-01-03  6:19     ` Guo Ren
2024-01-03  6:19       ` Guo Ren
2024-01-03 19:56       ` Andrew Jones
2024-01-03 19:56         ` Andrew Jones
2024-01-05 13:31     ` Andrew Jones
2024-01-05 13:31       ` Andrew Jones
2023-12-31  8:29 ` [PATCH V2 3/3] riscv: xchg: Prefetch the destination word for sc.w guoren
2023-12-31  8:29   ` guoren
2024-01-02 11:18   ` Andrew Jones
2024-01-02 11:18     ` Andrew Jones
2024-01-03  6:15     ` Guo Ren
2024-01-03  6:15       ` Guo Ren
2024-01-03 19:45       ` Leonardo Bras
2024-01-03 19:45         ` Leonardo Bras
2024-01-04  1:24         ` Guo Ren
2024-01-04  1:24           ` Guo Ren
2024-01-04  3:56           ` Leonardo Bras
2024-01-04  3:56             ` Leonardo Bras
2024-01-04  8:14             ` Guo Ren
2024-01-04  8:14               ` Guo Ren
2024-01-04 14:17               ` Leonardo Bras
2024-01-04 14:17                 ` Leonardo Bras
2024-01-05  1:13                 ` Guo Ren
2024-01-05  1:13                   ` Guo Ren

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=20240111-populate-sterilize-8e241ead0b00@spud \
    --to=conor@kernel.org \
    --cc=ajones@ventanamicro.com \
    --cc=atishp@atishpatra.org \
    --cc=bjorn@rivosinc.com \
    --cc=chao.wei@sophgo.com \
    --cc=cleger@rivosinc.com \
    --cc=conor.dooley@microchip.com \
    --cc=guoren@kernel.org \
    --cc=guoren@linux.alibaba.com \
    --cc=jszhang@kernel.org \
    --cc=keescook@chromium.org \
    --cc=leobras@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=palmer@dabbelt.com \
    --cc=panqinglin2020@iscas.ac.cn \
    --cc=paul.walmsley@sifive.com \
    --cc=peterz@infradead.org \
    --cc=unicorn_wang@outlook.com \
    --cc=uwu@icenowy.me \
    --cc=wefu@redhat.com \
    --cc=wuwei2016@iscas.ac.cn \
    --cc=xiaoguang.xing@sophgo.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.