Linux-RISC-V Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/2] riscv: hwprobe: add Zicbop support
@ 2025-09-11 12:12 Yao Zihong
  2025-09-11 12:12 ` [PATCH v1 1/2] uapi: riscv: hwprobe: add Zicbop extension bit and block-size key Yao Zihong
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Yao Zihong @ 2025-09-11 12:12 UTC (permalink / raw)
  To: linux-riscv
  Cc: linux-kernel, zihong.plct, zihongyao, zhangyin2018, Paul Walmsley,
	Palmer Dabbelt, Albert Ou, Alexandre Ghiti

Add UAPI and kernel plumbing to expose the Zicbop extension presence
and its block size through sys_hwprobe(). The interface mirrors
Zicbom/Zicboz. This allows userspace to safely discover and optimize
for Zicbop when available.

Yao Zihong (2):
  uapi: riscv: hwprobe: add Zicbop extension bit and block-size key
  riscv: hwprobe: report Zicbop presence and block size

 arch/riscv/include/uapi/asm/hwprobe.h | 2 ++
 arch/riscv/kernel/sys_hwprobe.c       | 6 ++++++
 2 files changed, 8 insertions(+)

-- 
2.47.2


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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v1 1/2] uapi: riscv: hwprobe: add Zicbop extension bit and block-size key
  2025-09-11 12:12 [PATCH v1 0/2] riscv: hwprobe: add Zicbop support Yao Zihong
@ 2025-09-11 12:12 ` Yao Zihong
  2025-09-11 12:12 ` [PATCH v1 2/2] riscv: hwprobe: report Zicbop presence and block size Yao Zihong
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Yao Zihong @ 2025-09-11 12:12 UTC (permalink / raw)
  To: linux-riscv
  Cc: linux-kernel, zihong.plct, zihongyao, zhangyin2018, Paul Walmsley,
	Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Charlie Jenkins,
	Clément Léger, Samuel Holland, Jesse Taube,
	Miquel Sabaté Solà, Yunhui Cui

Introduce RISCV_HWPROBE_EXT_ZICBOP to report presence of the Zicbop
extension through sys_hwprobe(), and add
RISCV_HWPROBE_KEY_ZICBOP_BLOCK_SIZE to expose the block size (in bytes)
when Zicbop is supported.

Signed-off-by: Yao Zihong <zihong.plct@isrc.iscas.ac.cn>
---
 arch/riscv/include/uapi/asm/hwprobe.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/riscv/include/uapi/asm/hwprobe.h b/arch/riscv/include/uapi/asm/hwprobe.h
index aaf6ad970499..c65c41a4d8ea 100644
--- a/arch/riscv/include/uapi/asm/hwprobe.h
+++ b/arch/riscv/include/uapi/asm/hwprobe.h
@@ -82,6 +82,7 @@ struct riscv_hwprobe {
 #define		RISCV_HWPROBE_EXT_ZAAMO		(1ULL << 56)
 #define		RISCV_HWPROBE_EXT_ZALRSC	(1ULL << 57)
 #define		RISCV_HWPROBE_EXT_ZABHA		(1ULL << 58)
+#define		RISCV_HWPROBE_EXT_ZICBOP	(1ULL << 59)
 #define RISCV_HWPROBE_KEY_CPUPERF_0	5
 #define		RISCV_HWPROBE_MISALIGNED_UNKNOWN	(0 << 0)
 #define		RISCV_HWPROBE_MISALIGNED_EMULATED	(1 << 0)
@@ -106,6 +107,7 @@ struct riscv_hwprobe {
 #define RISCV_HWPROBE_KEY_VENDOR_EXT_THEAD_0	11
 #define RISCV_HWPROBE_KEY_ZICBOM_BLOCK_SIZE	12
 #define RISCV_HWPROBE_KEY_VENDOR_EXT_SIFIVE_0	13
+#define RISCV_HWPROBE_KEY_ZICBOP_BLOCK_SIZE	14
 /* Increase RISCV_HWPROBE_MAX_KEY when adding items. */
 
 /* Flags */
-- 
2.47.2


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

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v1 2/2] riscv: hwprobe: report Zicbop presence and block size
  2025-09-11 12:12 [PATCH v1 0/2] riscv: hwprobe: add Zicbop support Yao Zihong
  2025-09-11 12:12 ` [PATCH v1 1/2] uapi: riscv: hwprobe: add Zicbop extension bit and block-size key Yao Zihong
@ 2025-09-11 12:12 ` Yao Zihong
  2025-09-22 13:53 ` [PATCH v1 0/2] riscv: hwprobe: add Zicbop support Yao Zihong
  2025-09-24 19:14 ` Andrew Jones
  3 siblings, 0 replies; 5+ messages in thread
From: Yao Zihong @ 2025-09-11 12:12 UTC (permalink / raw)
  To: linux-riscv
  Cc: linux-kernel, zihong.plct, zihongyao, zhangyin2018, Paul Walmsley,
	Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Charlie Jenkins,
	Clément Léger, Jesse Taube,
	Miquel Sabaté Solà, Samuel Holland,
	Thomas Weißschuh, Nam Cao, Yunhui Cui

Plumb Zicbop into sys_hwprobe. Semantics mirror Zicbom/Zicboz
to keep userspace expectations aligned.

Signed-off-by: Yao Zihong <zihong.plct@isrc.iscas.ac.cn>
---
 arch/riscv/kernel/sys_hwprobe.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/riscv/kernel/sys_hwprobe.c b/arch/riscv/kernel/sys_hwprobe.c
index 0b170e18a2be..857d4e602e76 100644
--- a/arch/riscv/kernel/sys_hwprobe.c
+++ b/arch/riscv/kernel/sys_hwprobe.c
@@ -112,6 +112,7 @@ static void hwprobe_isa_ext0(struct riscv_hwprobe *pair,
 		EXT_KEY(ZCB);
 		EXT_KEY(ZCMOP);
 		EXT_KEY(ZICBOM);
+		EXT_KEY(ZICBOP);
 		EXT_KEY(ZICBOZ);
 		EXT_KEY(ZICNTR);
 		EXT_KEY(ZICOND);
@@ -294,6 +295,11 @@ static void hwprobe_one_pair(struct riscv_hwprobe *pair,
 		if (hwprobe_ext0_has(cpus, RISCV_HWPROBE_EXT_ZICBOM))
 			pair->value = riscv_cbom_block_size;
 		break;
+	case RISCV_HWPROBE_KEY_ZICBOP_BLOCK_SIZE:
+		pair->value = 0;
+		if (hwprobe_ext0_has(cpus, RISCV_HWPROBE_EXT_ZICBOP))
+			pair->value = riscv_cbop_block_size;
+		break;
 	case RISCV_HWPROBE_KEY_HIGHEST_VIRT_ADDRESS:
 		pair->value = user_max_virt_addr();
 		break;
-- 
2.47.2


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

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v1 0/2] riscv: hwprobe: add Zicbop support
  2025-09-11 12:12 [PATCH v1 0/2] riscv: hwprobe: add Zicbop support Yao Zihong
  2025-09-11 12:12 ` [PATCH v1 1/2] uapi: riscv: hwprobe: add Zicbop extension bit and block-size key Yao Zihong
  2025-09-11 12:12 ` [PATCH v1 2/2] riscv: hwprobe: report Zicbop presence and block size Yao Zihong
@ 2025-09-22 13:53 ` Yao Zihong
  2025-09-24 19:14 ` Andrew Jones
  3 siblings, 0 replies; 5+ messages in thread
From: Yao Zihong @ 2025-09-22 13:53 UTC (permalink / raw)
  To: zihong.plct
  Cc: alex, aou, linux-kernel, linux-riscv, palmer, paul.walmsley,
	zhangyin2018, zihongyao

Hi all,

It’s been about two weeks since I posted this patch.
Could someone take a look when convenient and let me know if there are
any concerns or improvements needed?

Patch links:
https://lore.kernel.org/linux-riscv/20250911121219.20243-1-zihong.plct@isrc.iscas.ac.cn/
https://lore.kernel.org/linux-riscv/20250911121219.20243-2-zihong.plct@isrc.iscas.ac.cn/
https://lore.kernel.org/linux-riscv/20250911121219.20243-3-zihong.plct@isrc.iscas.ac.cn/

If useful, I can resend with updates if needed.
Thanks for your attention.

Zihong


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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v1 0/2] riscv: hwprobe: add Zicbop support
  2025-09-11 12:12 [PATCH v1 0/2] riscv: hwprobe: add Zicbop support Yao Zihong
                   ` (2 preceding siblings ...)
  2025-09-22 13:53 ` [PATCH v1 0/2] riscv: hwprobe: add Zicbop support Yao Zihong
@ 2025-09-24 19:14 ` Andrew Jones
  3 siblings, 0 replies; 5+ messages in thread
From: Andrew Jones @ 2025-09-24 19:14 UTC (permalink / raw)
  To: Yao Zihong
  Cc: linux-riscv, linux-kernel, zihongyao, zhangyin2018, Paul Walmsley,
	Palmer Dabbelt, Albert Ou, Alexandre Ghiti

On Thu, Sep 11, 2025 at 08:12:07PM +0800, Yao Zihong wrote:
> Add UAPI and kernel plumbing to expose the Zicbop extension presence
> and its block size through sys_hwprobe(). The interface mirrors
> Zicbom/Zicboz.

Yes, the changes to add Zicbop support should closely resemble those
of Zicbom/Zicboz. So I suggest you grep / git-blame, etc. one or both of
those extensions in order to read how they were done.

With a quick look at this series I can see several changes are missing,
such as

 - an update to the documentation, Documentation/arch/riscv/hwprobe.rst
 - a bump to RISCV_HWPROBE_MAX_KEY (as the comment below the change
   this patch makes says to do)
 - test(s) added to tools/testing/selftests/riscv/hwprobe/cbo.c

Thanks,
drew

> This allows userspace to safely discover and optimize
> for Zicbop when available.
> 
> Yao Zihong (2):
>   uapi: riscv: hwprobe: add Zicbop extension bit and block-size key
>   riscv: hwprobe: report Zicbop presence and block size
> 
>  arch/riscv/include/uapi/asm/hwprobe.h | 2 ++
>  arch/riscv/kernel/sys_hwprobe.c       | 6 ++++++
>  2 files changed, 8 insertions(+)
> 
> -- 
> 2.47.2
> 
> 
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-09-24 19:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-11 12:12 [PATCH v1 0/2] riscv: hwprobe: add Zicbop support Yao Zihong
2025-09-11 12:12 ` [PATCH v1 1/2] uapi: riscv: hwprobe: add Zicbop extension bit and block-size key Yao Zihong
2025-09-11 12:12 ` [PATCH v1 2/2] riscv: hwprobe: report Zicbop presence and block size Yao Zihong
2025-09-22 13:53 ` [PATCH v1 0/2] riscv: hwprobe: add Zicbop support Yao Zihong
2025-09-24 19:14 ` Andrew Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox