qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] linux-user/riscv: Sync hwprobe keys with kernel
@ 2024-02-07 11:59 Christoph Müllner
  2024-02-07 11:59 ` [PATCH 1/2] linux-user/riscv: Add Zicboz extensions to hwprobe Christoph Müllner
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Christoph Müllner @ 2024-02-07 11:59 UTC (permalink / raw)
  To: qemu-riscv, qemu-devel, Alistair Francis, Bin Meng,
	Philipp Tomsich, Palmer Dabbelt, Richard Henderson,
	Daniel Henrique Barboza, Andrew Jones
  Cc: Christoph Müllner

This series syncs the hwprobe keys with those available in the upstream
kernel repository with the exception of Ztso, which is not supported in
QEMU as of now.

The first patch is a resend (sent on Nov 27), as it should have been
picked up on Dec 6, but seems to got lost.

Christoph Müllner (2):
  linux-user/riscv: Add Zicboz extensions to hwprobe
  linux-user/riscv: Sync hwprobe keys with Linux

 linux-user/syscall.c | 99 +++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 93 insertions(+), 6 deletions(-)

-- 
2.43.0



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

* [PATCH 1/2] linux-user/riscv: Add Zicboz extensions to hwprobe
  2024-02-07 11:59 [PATCH 0/2] linux-user/riscv: Sync hwprobe keys with kernel Christoph Müllner
@ 2024-02-07 11:59 ` Christoph Müllner
  2024-02-14 13:26   ` Daniel Henrique Barboza
  2024-02-07 11:59 ` [PATCH 2/2] linux-user/riscv: Sync hwprobe keys with Linux Christoph Müllner
  2024-02-15  9:54 ` [PATCH 0/2] linux-user/riscv: Sync hwprobe keys with kernel Alistair Francis
  2 siblings, 1 reply; 8+ messages in thread
From: Christoph Müllner @ 2024-02-07 11:59 UTC (permalink / raw)
  To: qemu-riscv, qemu-devel, Alistair Francis, Bin Meng,
	Philipp Tomsich, Palmer Dabbelt, Richard Henderson,
	Daniel Henrique Barboza, Andrew Jones
  Cc: Christoph Müllner, Laurent Vivier

Upstream Linux recently added RISC-V Zicboz support to the hwprobe API.
This patch introduces this for QEMU's user space emulator.

Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
---
 linux-user/syscall.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index e384e14248..43467c9707 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8799,6 +8799,7 @@ static int do_getdents64(abi_long dirfd, abi_long arg2, abi_long count)
 #define     RISCV_HWPROBE_EXT_ZBA      (1 << 3)
 #define     RISCV_HWPROBE_EXT_ZBB      (1 << 4)
 #define     RISCV_HWPROBE_EXT_ZBS      (1 << 5)
+#define     RISCV_HWPROBE_EXT_ZICBOZ   (1 << 6)
 
 #define RISCV_HWPROBE_KEY_CPUPERF_0     5
 #define     RISCV_HWPROBE_MISALIGNED_UNKNOWN     (0 << 0)
@@ -8857,6 +8858,8 @@ static void risc_hwprobe_fill_pairs(CPURISCVState *env,
                      RISCV_HWPROBE_EXT_ZBB : 0;
             value |= cfg->ext_zbs ?
                      RISCV_HWPROBE_EXT_ZBS : 0;
+            value |= cfg->ext_zicboz ?
+                     RISCV_HWPROBE_EXT_ZICBOZ : 0;
             __put_user(value, &pair->value);
             break;
         case RISCV_HWPROBE_KEY_CPUPERF_0:
-- 
2.43.0



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

* [PATCH 2/2] linux-user/riscv: Sync hwprobe keys with Linux
  2024-02-07 11:59 [PATCH 0/2] linux-user/riscv: Sync hwprobe keys with kernel Christoph Müllner
  2024-02-07 11:59 ` [PATCH 1/2] linux-user/riscv: Add Zicboz extensions to hwprobe Christoph Müllner
@ 2024-02-07 11:59 ` Christoph Müllner
  2024-02-14 13:26   ` Daniel Henrique Barboza
  2024-03-08  4:22   ` Alistair Francis
  2024-02-15  9:54 ` [PATCH 0/2] linux-user/riscv: Sync hwprobe keys with kernel Alistair Francis
  2 siblings, 2 replies; 8+ messages in thread
From: Christoph Müllner @ 2024-02-07 11:59 UTC (permalink / raw)
  To: qemu-riscv, qemu-devel, Alistair Francis, Bin Meng,
	Philipp Tomsich, Palmer Dabbelt, Richard Henderson,
	Daniel Henrique Barboza, Andrew Jones
  Cc: Christoph Müllner, Laurent Vivier

Upstream Linux recently added many additional keys to the hwprobe API.
This patch adds support for all of them with the exception of Ztso,
which is currently not supported in QEMU.

Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
---
 linux-user/syscall.c | 98 ++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 91 insertions(+), 7 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 43467c9707..3ba20f99ad 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8793,13 +8793,41 @@ static int do_getdents64(abi_long dirfd, abi_long arg2, abi_long count)
 #define     RISCV_HWPROBE_BASE_BEHAVIOR_IMA (1 << 0)
 
 #define RISCV_HWPROBE_KEY_IMA_EXT_0     4
-#define     RISCV_HWPROBE_IMA_FD       (1 << 0)
-#define     RISCV_HWPROBE_IMA_C        (1 << 1)
-#define     RISCV_HWPROBE_IMA_V        (1 << 2)
-#define     RISCV_HWPROBE_EXT_ZBA      (1 << 3)
-#define     RISCV_HWPROBE_EXT_ZBB      (1 << 4)
-#define     RISCV_HWPROBE_EXT_ZBS      (1 << 5)
-#define     RISCV_HWPROBE_EXT_ZICBOZ   (1 << 6)
+#define		RISCV_HWPROBE_IMA_FD		(1 << 0)
+#define		RISCV_HWPROBE_IMA_C		(1 << 1)
+#define		RISCV_HWPROBE_IMA_V		(1 << 2)
+#define		RISCV_HWPROBE_EXT_ZBA		(1 << 3)
+#define		RISCV_HWPROBE_EXT_ZBB		(1 << 4)
+#define		RISCV_HWPROBE_EXT_ZBS		(1 << 5)
+#define		RISCV_HWPROBE_EXT_ZICBOZ	(1 << 6)
+#define		RISCV_HWPROBE_EXT_ZBC		(1 << 7)
+#define		RISCV_HWPROBE_EXT_ZBKB		(1 << 8)
+#define		RISCV_HWPROBE_EXT_ZBKC		(1 << 9)
+#define		RISCV_HWPROBE_EXT_ZBKX		(1 << 10)
+#define		RISCV_HWPROBE_EXT_ZKND		(1 << 11)
+#define		RISCV_HWPROBE_EXT_ZKNE		(1 << 12)
+#define		RISCV_HWPROBE_EXT_ZKNH		(1 << 13)
+#define		RISCV_HWPROBE_EXT_ZKSED		(1 << 14)
+#define		RISCV_HWPROBE_EXT_ZKSH		(1 << 15)
+#define		RISCV_HWPROBE_EXT_ZKT		(1 << 16)
+#define		RISCV_HWPROBE_EXT_ZVBB		(1 << 17)
+#define		RISCV_HWPROBE_EXT_ZVBC		(1 << 18)
+#define		RISCV_HWPROBE_EXT_ZVKB		(1 << 19)
+#define		RISCV_HWPROBE_EXT_ZVKG		(1 << 20)
+#define		RISCV_HWPROBE_EXT_ZVKNED	(1 << 21)
+#define		RISCV_HWPROBE_EXT_ZVKNHA	(1 << 22)
+#define		RISCV_HWPROBE_EXT_ZVKNHB	(1 << 23)
+#define		RISCV_HWPROBE_EXT_ZVKSED	(1 << 24)
+#define		RISCV_HWPROBE_EXT_ZVKSH		(1 << 25)
+#define		RISCV_HWPROBE_EXT_ZVKT		(1 << 26)
+#define		RISCV_HWPROBE_EXT_ZFH		(1 << 27)
+#define		RISCV_HWPROBE_EXT_ZFHMIN	(1 << 28)
+#define		RISCV_HWPROBE_EXT_ZIHINTNTL	(1 << 29)
+#define		RISCV_HWPROBE_EXT_ZVFH		(1 << 30)
+#define		RISCV_HWPROBE_EXT_ZVFHMIN	(1 << 31)
+#define		RISCV_HWPROBE_EXT_ZFA		(1ULL << 32)
+#define		RISCV_HWPROBE_EXT_ZACAS		(1ULL << 34)
+#define		RISCV_HWPROBE_EXT_ZICOND	(1ULL << 35)
 
 #define RISCV_HWPROBE_KEY_CPUPERF_0     5
 #define     RISCV_HWPROBE_MISALIGNED_UNKNOWN     (0 << 0)
@@ -8860,6 +8888,62 @@ static void risc_hwprobe_fill_pairs(CPURISCVState *env,
                      RISCV_HWPROBE_EXT_ZBS : 0;
             value |= cfg->ext_zicboz ?
                      RISCV_HWPROBE_EXT_ZICBOZ : 0;
+            value |= cfg->ext_zbc ?
+                     RISCV_HWPROBE_EXT_ZBC : 0;
+            value |= cfg->ext_zbkb ?
+                     RISCV_HWPROBE_EXT_ZBKB : 0;
+            value |= cfg->ext_zbkc ?
+                     RISCV_HWPROBE_EXT_ZBKC : 0;
+            value |= cfg->ext_zbkx ?
+                     RISCV_HWPROBE_EXT_ZBKX : 0;
+            value |= cfg->ext_zknd ?
+                     RISCV_HWPROBE_EXT_ZKND : 0;
+            value |= cfg->ext_zkne ?
+                     RISCV_HWPROBE_EXT_ZKNE : 0;
+            value |= cfg->ext_zknh ?
+                     RISCV_HWPROBE_EXT_ZKNH : 0;
+            value |= cfg->ext_zksed ?
+                     RISCV_HWPROBE_EXT_ZKSED : 0;
+            value |= cfg->ext_zksh ?
+                     RISCV_HWPROBE_EXT_ZKSH : 0;
+            value |= cfg->ext_zkt ?
+                     RISCV_HWPROBE_EXT_ZKT : 0;
+            value |= cfg->ext_zvbb ?
+                     RISCV_HWPROBE_EXT_ZVBB : 0;
+            value |= cfg->ext_zvbc ?
+                     RISCV_HWPROBE_EXT_ZVBC : 0;
+            value |= cfg->ext_zvkb ?
+                     RISCV_HWPROBE_EXT_ZVKB : 0;
+            value |= cfg->ext_zvkg ?
+                     RISCV_HWPROBE_EXT_ZVKG : 0;
+            value |= cfg->ext_zvkned ?
+                     RISCV_HWPROBE_EXT_ZVKNED : 0;
+            value |= cfg->ext_zvknha ?
+                     RISCV_HWPROBE_EXT_ZVKNHA : 0;
+            value |= cfg->ext_zvknhb ?
+                     RISCV_HWPROBE_EXT_ZVKNHB : 0;
+            value |= cfg->ext_zvksed ?
+                     RISCV_HWPROBE_EXT_ZVKSED : 0;
+            value |= cfg->ext_zvksh ?
+                     RISCV_HWPROBE_EXT_ZVKSH : 0;
+            value |= cfg->ext_zvkt ?
+                     RISCV_HWPROBE_EXT_ZVKT : 0;
+            value |= cfg->ext_zfh ?
+                     RISCV_HWPROBE_EXT_ZFH : 0;
+            value |= cfg->ext_zfhmin ?
+                     RISCV_HWPROBE_EXT_ZFHMIN : 0;
+            value |= cfg->ext_zihintntl ?
+                     RISCV_HWPROBE_EXT_ZIHINTNTL : 0;
+            value |= cfg->ext_zvfh ?
+                     RISCV_HWPROBE_EXT_ZVFH : 0;
+            value |= cfg->ext_zvfhmin ?
+                     RISCV_HWPROBE_EXT_ZVFHMIN : 0;
+            value |= cfg->ext_zfa ?
+                     RISCV_HWPROBE_EXT_ZFA : 0;
+            value |= cfg->ext_zacas ?
+                     RISCV_HWPROBE_EXT_ZACAS : 0;
+            value |= cfg->ext_zicond ?
+                     RISCV_HWPROBE_EXT_ZICOND : 0;
             __put_user(value, &pair->value);
             break;
         case RISCV_HWPROBE_KEY_CPUPERF_0:
-- 
2.43.0



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

* Re: [PATCH 1/2] linux-user/riscv: Add Zicboz extensions to hwprobe
  2024-02-07 11:59 ` [PATCH 1/2] linux-user/riscv: Add Zicboz extensions to hwprobe Christoph Müllner
@ 2024-02-14 13:26   ` Daniel Henrique Barboza
  0 siblings, 0 replies; 8+ messages in thread
From: Daniel Henrique Barboza @ 2024-02-14 13:26 UTC (permalink / raw)
  To: Christoph Müllner, qemu-riscv, qemu-devel, Alistair Francis,
	Bin Meng, Philipp Tomsich, Palmer Dabbelt, Richard Henderson,
	Andrew Jones
  Cc: Laurent Vivier



On 2/7/24 08:59, Christoph Müllner wrote:
> Upstream Linux recently added RISC-V Zicboz support to the hwprobe API.
> This patch introduces this for QEMU's user space emulator.
> 
> Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
> ---

Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>

>   linux-user/syscall.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index e384e14248..43467c9707 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -8799,6 +8799,7 @@ static int do_getdents64(abi_long dirfd, abi_long arg2, abi_long count)
>   #define     RISCV_HWPROBE_EXT_ZBA      (1 << 3)
>   #define     RISCV_HWPROBE_EXT_ZBB      (1 << 4)
>   #define     RISCV_HWPROBE_EXT_ZBS      (1 << 5)
> +#define     RISCV_HWPROBE_EXT_ZICBOZ   (1 << 6)
>   
>   #define RISCV_HWPROBE_KEY_CPUPERF_0     5
>   #define     RISCV_HWPROBE_MISALIGNED_UNKNOWN     (0 << 0)
> @@ -8857,6 +8858,8 @@ static void risc_hwprobe_fill_pairs(CPURISCVState *env,
>                        RISCV_HWPROBE_EXT_ZBB : 0;
>               value |= cfg->ext_zbs ?
>                        RISCV_HWPROBE_EXT_ZBS : 0;
> +            value |= cfg->ext_zicboz ?
> +                     RISCV_HWPROBE_EXT_ZICBOZ : 0;
>               __put_user(value, &pair->value);
>               break;
>           case RISCV_HWPROBE_KEY_CPUPERF_0:


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

* Re: [PATCH 2/2] linux-user/riscv: Sync hwprobe keys with Linux
  2024-02-07 11:59 ` [PATCH 2/2] linux-user/riscv: Sync hwprobe keys with Linux Christoph Müllner
@ 2024-02-14 13:26   ` Daniel Henrique Barboza
  2024-03-08  4:22   ` Alistair Francis
  1 sibling, 0 replies; 8+ messages in thread
From: Daniel Henrique Barboza @ 2024-02-14 13:26 UTC (permalink / raw)
  To: Christoph Müllner, qemu-riscv, qemu-devel, Alistair Francis,
	Bin Meng, Philipp Tomsich, Palmer Dabbelt, Richard Henderson,
	Andrew Jones
  Cc: Laurent Vivier



On 2/7/24 08:59, Christoph Müllner wrote:
> Upstream Linux recently added many additional keys to the hwprobe API.
> This patch adds support for all of them with the exception of Ztso,
> which is currently not supported in QEMU.
> 
> Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
> ---

Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>

>   linux-user/syscall.c | 98 ++++++++++++++++++++++++++++++++++++++++----
>   1 file changed, 91 insertions(+), 7 deletions(-)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 43467c9707..3ba20f99ad 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -8793,13 +8793,41 @@ static int do_getdents64(abi_long dirfd, abi_long arg2, abi_long count)
>   #define     RISCV_HWPROBE_BASE_BEHAVIOR_IMA (1 << 0)
>   
>   #define RISCV_HWPROBE_KEY_IMA_EXT_0     4
> -#define     RISCV_HWPROBE_IMA_FD       (1 << 0)
> -#define     RISCV_HWPROBE_IMA_C        (1 << 1)
> -#define     RISCV_HWPROBE_IMA_V        (1 << 2)
> -#define     RISCV_HWPROBE_EXT_ZBA      (1 << 3)
> -#define     RISCV_HWPROBE_EXT_ZBB      (1 << 4)
> -#define     RISCV_HWPROBE_EXT_ZBS      (1 << 5)
> -#define     RISCV_HWPROBE_EXT_ZICBOZ   (1 << 6)
> +#define		RISCV_HWPROBE_IMA_FD		(1 << 0)
> +#define		RISCV_HWPROBE_IMA_C		(1 << 1)
> +#define		RISCV_HWPROBE_IMA_V		(1 << 2)
> +#define		RISCV_HWPROBE_EXT_ZBA		(1 << 3)
> +#define		RISCV_HWPROBE_EXT_ZBB		(1 << 4)
> +#define		RISCV_HWPROBE_EXT_ZBS		(1 << 5)
> +#define		RISCV_HWPROBE_EXT_ZICBOZ	(1 << 6)
> +#define		RISCV_HWPROBE_EXT_ZBC		(1 << 7)
> +#define		RISCV_HWPROBE_EXT_ZBKB		(1 << 8)
> +#define		RISCV_HWPROBE_EXT_ZBKC		(1 << 9)
> +#define		RISCV_HWPROBE_EXT_ZBKX		(1 << 10)
> +#define		RISCV_HWPROBE_EXT_ZKND		(1 << 11)
> +#define		RISCV_HWPROBE_EXT_ZKNE		(1 << 12)
> +#define		RISCV_HWPROBE_EXT_ZKNH		(1 << 13)
> +#define		RISCV_HWPROBE_EXT_ZKSED		(1 << 14)
> +#define		RISCV_HWPROBE_EXT_ZKSH		(1 << 15)
> +#define		RISCV_HWPROBE_EXT_ZKT		(1 << 16)
> +#define		RISCV_HWPROBE_EXT_ZVBB		(1 << 17)
> +#define		RISCV_HWPROBE_EXT_ZVBC		(1 << 18)
> +#define		RISCV_HWPROBE_EXT_ZVKB		(1 << 19)
> +#define		RISCV_HWPROBE_EXT_ZVKG		(1 << 20)
> +#define		RISCV_HWPROBE_EXT_ZVKNED	(1 << 21)
> +#define		RISCV_HWPROBE_EXT_ZVKNHA	(1 << 22)
> +#define		RISCV_HWPROBE_EXT_ZVKNHB	(1 << 23)
> +#define		RISCV_HWPROBE_EXT_ZVKSED	(1 << 24)
> +#define		RISCV_HWPROBE_EXT_ZVKSH		(1 << 25)
> +#define		RISCV_HWPROBE_EXT_ZVKT		(1 << 26)
> +#define		RISCV_HWPROBE_EXT_ZFH		(1 << 27)
> +#define		RISCV_HWPROBE_EXT_ZFHMIN	(1 << 28)
> +#define		RISCV_HWPROBE_EXT_ZIHINTNTL	(1 << 29)
> +#define		RISCV_HWPROBE_EXT_ZVFH		(1 << 30)
> +#define		RISCV_HWPROBE_EXT_ZVFHMIN	(1 << 31)
> +#define		RISCV_HWPROBE_EXT_ZFA		(1ULL << 32)
> +#define		RISCV_HWPROBE_EXT_ZACAS		(1ULL << 34)
> +#define		RISCV_HWPROBE_EXT_ZICOND	(1ULL << 35)
>   
>   #define RISCV_HWPROBE_KEY_CPUPERF_0     5
>   #define     RISCV_HWPROBE_MISALIGNED_UNKNOWN     (0 << 0)
> @@ -8860,6 +8888,62 @@ static void risc_hwprobe_fill_pairs(CPURISCVState *env,
>                        RISCV_HWPROBE_EXT_ZBS : 0;
>               value |= cfg->ext_zicboz ?
>                        RISCV_HWPROBE_EXT_ZICBOZ : 0;
> +            value |= cfg->ext_zbc ?
> +                     RISCV_HWPROBE_EXT_ZBC : 0;
> +            value |= cfg->ext_zbkb ?
> +                     RISCV_HWPROBE_EXT_ZBKB : 0;
> +            value |= cfg->ext_zbkc ?
> +                     RISCV_HWPROBE_EXT_ZBKC : 0;
> +            value |= cfg->ext_zbkx ?
> +                     RISCV_HWPROBE_EXT_ZBKX : 0;
> +            value |= cfg->ext_zknd ?
> +                     RISCV_HWPROBE_EXT_ZKND : 0;
> +            value |= cfg->ext_zkne ?
> +                     RISCV_HWPROBE_EXT_ZKNE : 0;
> +            value |= cfg->ext_zknh ?
> +                     RISCV_HWPROBE_EXT_ZKNH : 0;
> +            value |= cfg->ext_zksed ?
> +                     RISCV_HWPROBE_EXT_ZKSED : 0;
> +            value |= cfg->ext_zksh ?
> +                     RISCV_HWPROBE_EXT_ZKSH : 0;
> +            value |= cfg->ext_zkt ?
> +                     RISCV_HWPROBE_EXT_ZKT : 0;
> +            value |= cfg->ext_zvbb ?
> +                     RISCV_HWPROBE_EXT_ZVBB : 0;
> +            value |= cfg->ext_zvbc ?
> +                     RISCV_HWPROBE_EXT_ZVBC : 0;
> +            value |= cfg->ext_zvkb ?
> +                     RISCV_HWPROBE_EXT_ZVKB : 0;
> +            value |= cfg->ext_zvkg ?
> +                     RISCV_HWPROBE_EXT_ZVKG : 0;
> +            value |= cfg->ext_zvkned ?
> +                     RISCV_HWPROBE_EXT_ZVKNED : 0;
> +            value |= cfg->ext_zvknha ?
> +                     RISCV_HWPROBE_EXT_ZVKNHA : 0;
> +            value |= cfg->ext_zvknhb ?
> +                     RISCV_HWPROBE_EXT_ZVKNHB : 0;
> +            value |= cfg->ext_zvksed ?
> +                     RISCV_HWPROBE_EXT_ZVKSED : 0;
> +            value |= cfg->ext_zvksh ?
> +                     RISCV_HWPROBE_EXT_ZVKSH : 0;
> +            value |= cfg->ext_zvkt ?
> +                     RISCV_HWPROBE_EXT_ZVKT : 0;
> +            value |= cfg->ext_zfh ?
> +                     RISCV_HWPROBE_EXT_ZFH : 0;
> +            value |= cfg->ext_zfhmin ?
> +                     RISCV_HWPROBE_EXT_ZFHMIN : 0;
> +            value |= cfg->ext_zihintntl ?
> +                     RISCV_HWPROBE_EXT_ZIHINTNTL : 0;
> +            value |= cfg->ext_zvfh ?
> +                     RISCV_HWPROBE_EXT_ZVFH : 0;
> +            value |= cfg->ext_zvfhmin ?
> +                     RISCV_HWPROBE_EXT_ZVFHMIN : 0;
> +            value |= cfg->ext_zfa ?
> +                     RISCV_HWPROBE_EXT_ZFA : 0;
> +            value |= cfg->ext_zacas ?
> +                     RISCV_HWPROBE_EXT_ZACAS : 0;
> +            value |= cfg->ext_zicond ?
> +                     RISCV_HWPROBE_EXT_ZICOND : 0;
>               __put_user(value, &pair->value);
>               break;
>           case RISCV_HWPROBE_KEY_CPUPERF_0:


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

* Re: [PATCH 0/2] linux-user/riscv: Sync hwprobe keys with kernel
  2024-02-07 11:59 [PATCH 0/2] linux-user/riscv: Sync hwprobe keys with kernel Christoph Müllner
  2024-02-07 11:59 ` [PATCH 1/2] linux-user/riscv: Add Zicboz extensions to hwprobe Christoph Müllner
  2024-02-07 11:59 ` [PATCH 2/2] linux-user/riscv: Sync hwprobe keys with Linux Christoph Müllner
@ 2024-02-15  9:54 ` Alistair Francis
  2 siblings, 0 replies; 8+ messages in thread
From: Alistair Francis @ 2024-02-15  9:54 UTC (permalink / raw)
  To: Christoph Müllner
  Cc: qemu-riscv, qemu-devel, Alistair Francis, Bin Meng,
	Philipp Tomsich, Palmer Dabbelt, Richard Henderson,
	Daniel Henrique Barboza, Andrew Jones

On Wed, Feb 7, 2024 at 10:00 PM Christoph Müllner
<christoph.muellner@vrull.eu> wrote:
>
> This series syncs the hwprobe keys with those available in the upstream
> kernel repository with the exception of Ztso, which is not supported in
> QEMU as of now.
>
> The first patch is a resend (sent on Nov 27), as it should have been
> picked up on Dec 6, but seems to got lost.
>
> Christoph Müllner (2):
>   linux-user/riscv: Add Zicboz extensions to hwprobe
>   linux-user/riscv: Sync hwprobe keys with Linux

Thanks!

Applied to riscv-to-apply.next

Alistair

>
>  linux-user/syscall.c | 99 +++++++++++++++++++++++++++++++++++++++++---
>  1 file changed, 93 insertions(+), 6 deletions(-)
>
> --
> 2.43.0
>
>


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

* Re: [PATCH 2/2] linux-user/riscv: Sync hwprobe keys with Linux
  2024-02-07 11:59 ` [PATCH 2/2] linux-user/riscv: Sync hwprobe keys with Linux Christoph Müllner
  2024-02-14 13:26   ` Daniel Henrique Barboza
@ 2024-03-08  4:22   ` Alistair Francis
  2024-03-08 13:15     ` Christoph Müllner
  1 sibling, 1 reply; 8+ messages in thread
From: Alistair Francis @ 2024-03-08  4:22 UTC (permalink / raw)
  To: Christoph Müllner
  Cc: qemu-riscv, qemu-devel, Alistair Francis, Bin Meng,
	Philipp Tomsich, Palmer Dabbelt, Richard Henderson,
	Daniel Henrique Barboza, Andrew Jones, Laurent Vivier

On Wed, Feb 7, 2024 at 10:00 PM Christoph Müllner
<christoph.muellner@vrull.eu> wrote:
>
> Upstream Linux recently added many additional keys to the hwprobe API.
> This patch adds support for all of them with the exception of Ztso,
> which is currently not supported in QEMU.
>
> Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
> ---
>  linux-user/syscall.c | 98 ++++++++++++++++++++++++++++++++++++++++----
>  1 file changed, 91 insertions(+), 7 deletions(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 43467c9707..3ba20f99ad 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -8793,13 +8793,41 @@ static int do_getdents64(abi_long dirfd, abi_long arg2, abi_long count)
>  #define     RISCV_HWPROBE_BASE_BEHAVIOR_IMA (1 << 0)
>
>  #define RISCV_HWPROBE_KEY_IMA_EXT_0     4
> -#define     RISCV_HWPROBE_IMA_FD       (1 << 0)
> -#define     RISCV_HWPROBE_IMA_C        (1 << 1)
> -#define     RISCV_HWPROBE_IMA_V        (1 << 2)
> -#define     RISCV_HWPROBE_EXT_ZBA      (1 << 3)
> -#define     RISCV_HWPROBE_EXT_ZBB      (1 << 4)
> -#define     RISCV_HWPROBE_EXT_ZBS      (1 << 5)
> -#define     RISCV_HWPROBE_EXT_ZICBOZ   (1 << 6)
> +#define                RISCV_HWPROBE_IMA_FD            (1 << 0)
> +#define                RISCV_HWPROBE_IMA_C             (1 << 1)
> +#define                RISCV_HWPROBE_IMA_V             (1 << 2)
> +#define                RISCV_HWPROBE_EXT_ZBA           (1 << 3)
> +#define                RISCV_HWPROBE_EXT_ZBB           (1 << 4)
> +#define                RISCV_HWPROBE_EXT_ZBS           (1 << 5)
> +#define                RISCV_HWPROBE_EXT_ZICBOZ        (1 << 6)
> +#define                RISCV_HWPROBE_EXT_ZBC           (1 << 7)
> +#define                RISCV_HWPROBE_EXT_ZBKB          (1 << 8)
> +#define                RISCV_HWPROBE_EXT_ZBKC          (1 << 9)
> +#define                RISCV_HWPROBE_EXT_ZBKX          (1 << 10)
> +#define                RISCV_HWPROBE_EXT_ZKND          (1 << 11)
> +#define                RISCV_HWPROBE_EXT_ZKNE          (1 << 12)
> +#define                RISCV_HWPROBE_EXT_ZKNH          (1 << 13)
> +#define                RISCV_HWPROBE_EXT_ZKSED         (1 << 14)
> +#define                RISCV_HWPROBE_EXT_ZKSH          (1 << 15)
> +#define                RISCV_HWPROBE_EXT_ZKT           (1 << 16)
> +#define                RISCV_HWPROBE_EXT_ZVBB          (1 << 17)
> +#define                RISCV_HWPROBE_EXT_ZVBC          (1 << 18)
> +#define                RISCV_HWPROBE_EXT_ZVKB          (1 << 19)
> +#define                RISCV_HWPROBE_EXT_ZVKG          (1 << 20)
> +#define                RISCV_HWPROBE_EXT_ZVKNED        (1 << 21)
> +#define                RISCV_HWPROBE_EXT_ZVKNHA        (1 << 22)
> +#define                RISCV_HWPROBE_EXT_ZVKNHB        (1 << 23)
> +#define                RISCV_HWPROBE_EXT_ZVKSED        (1 << 24)
> +#define                RISCV_HWPROBE_EXT_ZVKSH         (1 << 25)
> +#define                RISCV_HWPROBE_EXT_ZVKT          (1 << 26)
> +#define                RISCV_HWPROBE_EXT_ZFH           (1 << 27)
> +#define                RISCV_HWPROBE_EXT_ZFHMIN        (1 << 28)
> +#define                RISCV_HWPROBE_EXT_ZIHINTNTL     (1 << 29)
> +#define                RISCV_HWPROBE_EXT_ZVFH          (1 << 30)
> +#define                RISCV_HWPROBE_EXT_ZVFHMIN       (1 << 31)
> +#define                RISCV_HWPROBE_EXT_ZFA           (1ULL << 32)
> +#define                RISCV_HWPROBE_EXT_ZACAS         (1ULL << 34)
> +#define                RISCV_HWPROBE_EXT_ZICOND        (1ULL << 35)

This fails to pass checkpatch

Alistair

>
>  #define RISCV_HWPROBE_KEY_CPUPERF_0     5
>  #define     RISCV_HWPROBE_MISALIGNED_UNKNOWN     (0 << 0)
> @@ -8860,6 +8888,62 @@ static void risc_hwprobe_fill_pairs(CPURISCVState *env,
>                       RISCV_HWPROBE_EXT_ZBS : 0;
>              value |= cfg->ext_zicboz ?
>                       RISCV_HWPROBE_EXT_ZICBOZ : 0;
> +            value |= cfg->ext_zbc ?
> +                     RISCV_HWPROBE_EXT_ZBC : 0;
> +            value |= cfg->ext_zbkb ?
> +                     RISCV_HWPROBE_EXT_ZBKB : 0;
> +            value |= cfg->ext_zbkc ?
> +                     RISCV_HWPROBE_EXT_ZBKC : 0;
> +            value |= cfg->ext_zbkx ?
> +                     RISCV_HWPROBE_EXT_ZBKX : 0;
> +            value |= cfg->ext_zknd ?
> +                     RISCV_HWPROBE_EXT_ZKND : 0;
> +            value |= cfg->ext_zkne ?
> +                     RISCV_HWPROBE_EXT_ZKNE : 0;
> +            value |= cfg->ext_zknh ?
> +                     RISCV_HWPROBE_EXT_ZKNH : 0;
> +            value |= cfg->ext_zksed ?
> +                     RISCV_HWPROBE_EXT_ZKSED : 0;
> +            value |= cfg->ext_zksh ?
> +                     RISCV_HWPROBE_EXT_ZKSH : 0;
> +            value |= cfg->ext_zkt ?
> +                     RISCV_HWPROBE_EXT_ZKT : 0;
> +            value |= cfg->ext_zvbb ?
> +                     RISCV_HWPROBE_EXT_ZVBB : 0;
> +            value |= cfg->ext_zvbc ?
> +                     RISCV_HWPROBE_EXT_ZVBC : 0;
> +            value |= cfg->ext_zvkb ?
> +                     RISCV_HWPROBE_EXT_ZVKB : 0;
> +            value |= cfg->ext_zvkg ?
> +                     RISCV_HWPROBE_EXT_ZVKG : 0;
> +            value |= cfg->ext_zvkned ?
> +                     RISCV_HWPROBE_EXT_ZVKNED : 0;
> +            value |= cfg->ext_zvknha ?
> +                     RISCV_HWPROBE_EXT_ZVKNHA : 0;
> +            value |= cfg->ext_zvknhb ?
> +                     RISCV_HWPROBE_EXT_ZVKNHB : 0;
> +            value |= cfg->ext_zvksed ?
> +                     RISCV_HWPROBE_EXT_ZVKSED : 0;
> +            value |= cfg->ext_zvksh ?
> +                     RISCV_HWPROBE_EXT_ZVKSH : 0;
> +            value |= cfg->ext_zvkt ?
> +                     RISCV_HWPROBE_EXT_ZVKT : 0;
> +            value |= cfg->ext_zfh ?
> +                     RISCV_HWPROBE_EXT_ZFH : 0;
> +            value |= cfg->ext_zfhmin ?
> +                     RISCV_HWPROBE_EXT_ZFHMIN : 0;
> +            value |= cfg->ext_zihintntl ?
> +                     RISCV_HWPROBE_EXT_ZIHINTNTL : 0;
> +            value |= cfg->ext_zvfh ?
> +                     RISCV_HWPROBE_EXT_ZVFH : 0;
> +            value |= cfg->ext_zvfhmin ?
> +                     RISCV_HWPROBE_EXT_ZVFHMIN : 0;
> +            value |= cfg->ext_zfa ?
> +                     RISCV_HWPROBE_EXT_ZFA : 0;
> +            value |= cfg->ext_zacas ?
> +                     RISCV_HWPROBE_EXT_ZACAS : 0;
> +            value |= cfg->ext_zicond ?
> +                     RISCV_HWPROBE_EXT_ZICOND : 0;
>              __put_user(value, &pair->value);
>              break;
>          case RISCV_HWPROBE_KEY_CPUPERF_0:
> --
> 2.43.0
>
>


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

* Re: [PATCH 2/2] linux-user/riscv: Sync hwprobe keys with Linux
  2024-03-08  4:22   ` Alistair Francis
@ 2024-03-08 13:15     ` Christoph Müllner
  0 siblings, 0 replies; 8+ messages in thread
From: Christoph Müllner @ 2024-03-08 13:15 UTC (permalink / raw)
  To: Alistair Francis
  Cc: qemu-riscv, qemu-devel, Alistair Francis, Bin Meng,
	Philipp Tomsich, Palmer Dabbelt, Richard Henderson,
	Daniel Henrique Barboza, Andrew Jones, Laurent Vivier

On Fri, Mar 8, 2024 at 5:23 AM Alistair Francis <alistair23@gmail.com> wrote:
>
> On Wed, Feb 7, 2024 at 10:00 PM Christoph Müllner
> <christoph.muellner@vrull.eu> wrote:
> >
> > Upstream Linux recently added many additional keys to the hwprobe API.
> > This patch adds support for all of them with the exception of Ztso,
> > which is currently not supported in QEMU.
> >
> > Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
> > ---
> >  linux-user/syscall.c | 98 ++++++++++++++++++++++++++++++++++++++++----
> >  1 file changed, 91 insertions(+), 7 deletions(-)
> >
> > diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> > index 43467c9707..3ba20f99ad 100644
> > --- a/linux-user/syscall.c
> > +++ b/linux-user/syscall.c
> > @@ -8793,13 +8793,41 @@ static int do_getdents64(abi_long dirfd, abi_long arg2, abi_long count)
> >  #define     RISCV_HWPROBE_BASE_BEHAVIOR_IMA (1 << 0)
> >
> >  #define RISCV_HWPROBE_KEY_IMA_EXT_0     4
> > -#define     RISCV_HWPROBE_IMA_FD       (1 << 0)
> > -#define     RISCV_HWPROBE_IMA_C        (1 << 1)
> > -#define     RISCV_HWPROBE_IMA_V        (1 << 2)
> > -#define     RISCV_HWPROBE_EXT_ZBA      (1 << 3)
> > -#define     RISCV_HWPROBE_EXT_ZBB      (1 << 4)
> > -#define     RISCV_HWPROBE_EXT_ZBS      (1 << 5)
> > -#define     RISCV_HWPROBE_EXT_ZICBOZ   (1 << 6)
> > +#define                RISCV_HWPROBE_IMA_FD            (1 << 0)
> > +#define                RISCV_HWPROBE_IMA_C             (1 << 1)
> > +#define                RISCV_HWPROBE_IMA_V             (1 << 2)
> > +#define                RISCV_HWPROBE_EXT_ZBA           (1 << 3)
> > +#define                RISCV_HWPROBE_EXT_ZBB           (1 << 4)
> > +#define                RISCV_HWPROBE_EXT_ZBS           (1 << 5)
> > +#define                RISCV_HWPROBE_EXT_ZICBOZ        (1 << 6)
> > +#define                RISCV_HWPROBE_EXT_ZBC           (1 << 7)
> > +#define                RISCV_HWPROBE_EXT_ZBKB          (1 << 8)
> > +#define                RISCV_HWPROBE_EXT_ZBKC          (1 << 9)
> > +#define                RISCV_HWPROBE_EXT_ZBKX          (1 << 10)
> > +#define                RISCV_HWPROBE_EXT_ZKND          (1 << 11)
> > +#define                RISCV_HWPROBE_EXT_ZKNE          (1 << 12)
> > +#define                RISCV_HWPROBE_EXT_ZKNH          (1 << 13)
> > +#define                RISCV_HWPROBE_EXT_ZKSED         (1 << 14)
> > +#define                RISCV_HWPROBE_EXT_ZKSH          (1 << 15)
> > +#define                RISCV_HWPROBE_EXT_ZKT           (1 << 16)
> > +#define                RISCV_HWPROBE_EXT_ZVBB          (1 << 17)
> > +#define                RISCV_HWPROBE_EXT_ZVBC          (1 << 18)
> > +#define                RISCV_HWPROBE_EXT_ZVKB          (1 << 19)
> > +#define                RISCV_HWPROBE_EXT_ZVKG          (1 << 20)
> > +#define                RISCV_HWPROBE_EXT_ZVKNED        (1 << 21)
> > +#define                RISCV_HWPROBE_EXT_ZVKNHA        (1 << 22)
> > +#define                RISCV_HWPROBE_EXT_ZVKNHB        (1 << 23)
> > +#define                RISCV_HWPROBE_EXT_ZVKSED        (1 << 24)
> > +#define                RISCV_HWPROBE_EXT_ZVKSH         (1 << 25)
> > +#define                RISCV_HWPROBE_EXT_ZVKT          (1 << 26)
> > +#define                RISCV_HWPROBE_EXT_ZFH           (1 << 27)
> > +#define                RISCV_HWPROBE_EXT_ZFHMIN        (1 << 28)
> > +#define                RISCV_HWPROBE_EXT_ZIHINTNTL     (1 << 29)
> > +#define                RISCV_HWPROBE_EXT_ZVFH          (1 << 30)
> > +#define                RISCV_HWPROBE_EXT_ZVFHMIN       (1 << 31)
> > +#define                RISCV_HWPROBE_EXT_ZFA           (1ULL << 32)
> > +#define                RISCV_HWPROBE_EXT_ZACAS         (1ULL << 34)
> > +#define                RISCV_HWPROBE_EXT_ZICOND        (1ULL << 35)
>
> This fails to pass checkpatch

I copied 1:1 from the kernel, so I guess it is the tabs.
Sorry for this! And as you have already fixed that: thanks!

>
> Alistair
>
> >
> >  #define RISCV_HWPROBE_KEY_CPUPERF_0     5
> >  #define     RISCV_HWPROBE_MISALIGNED_UNKNOWN     (0 << 0)
> > @@ -8860,6 +8888,62 @@ static void risc_hwprobe_fill_pairs(CPURISCVState *env,
> >                       RISCV_HWPROBE_EXT_ZBS : 0;
> >              value |= cfg->ext_zicboz ?
> >                       RISCV_HWPROBE_EXT_ZICBOZ : 0;
> > +            value |= cfg->ext_zbc ?
> > +                     RISCV_HWPROBE_EXT_ZBC : 0;
> > +            value |= cfg->ext_zbkb ?
> > +                     RISCV_HWPROBE_EXT_ZBKB : 0;
> > +            value |= cfg->ext_zbkc ?
> > +                     RISCV_HWPROBE_EXT_ZBKC : 0;
> > +            value |= cfg->ext_zbkx ?
> > +                     RISCV_HWPROBE_EXT_ZBKX : 0;
> > +            value |= cfg->ext_zknd ?
> > +                     RISCV_HWPROBE_EXT_ZKND : 0;
> > +            value |= cfg->ext_zkne ?
> > +                     RISCV_HWPROBE_EXT_ZKNE : 0;
> > +            value |= cfg->ext_zknh ?
> > +                     RISCV_HWPROBE_EXT_ZKNH : 0;
> > +            value |= cfg->ext_zksed ?
> > +                     RISCV_HWPROBE_EXT_ZKSED : 0;
> > +            value |= cfg->ext_zksh ?
> > +                     RISCV_HWPROBE_EXT_ZKSH : 0;
> > +            value |= cfg->ext_zkt ?
> > +                     RISCV_HWPROBE_EXT_ZKT : 0;
> > +            value |= cfg->ext_zvbb ?
> > +                     RISCV_HWPROBE_EXT_ZVBB : 0;
> > +            value |= cfg->ext_zvbc ?
> > +                     RISCV_HWPROBE_EXT_ZVBC : 0;
> > +            value |= cfg->ext_zvkb ?
> > +                     RISCV_HWPROBE_EXT_ZVKB : 0;
> > +            value |= cfg->ext_zvkg ?
> > +                     RISCV_HWPROBE_EXT_ZVKG : 0;
> > +            value |= cfg->ext_zvkned ?
> > +                     RISCV_HWPROBE_EXT_ZVKNED : 0;
> > +            value |= cfg->ext_zvknha ?
> > +                     RISCV_HWPROBE_EXT_ZVKNHA : 0;
> > +            value |= cfg->ext_zvknhb ?
> > +                     RISCV_HWPROBE_EXT_ZVKNHB : 0;
> > +            value |= cfg->ext_zvksed ?
> > +                     RISCV_HWPROBE_EXT_ZVKSED : 0;
> > +            value |= cfg->ext_zvksh ?
> > +                     RISCV_HWPROBE_EXT_ZVKSH : 0;
> > +            value |= cfg->ext_zvkt ?
> > +                     RISCV_HWPROBE_EXT_ZVKT : 0;
> > +            value |= cfg->ext_zfh ?
> > +                     RISCV_HWPROBE_EXT_ZFH : 0;
> > +            value |= cfg->ext_zfhmin ?
> > +                     RISCV_HWPROBE_EXT_ZFHMIN : 0;
> > +            value |= cfg->ext_zihintntl ?
> > +                     RISCV_HWPROBE_EXT_ZIHINTNTL : 0;
> > +            value |= cfg->ext_zvfh ?
> > +                     RISCV_HWPROBE_EXT_ZVFH : 0;
> > +            value |= cfg->ext_zvfhmin ?
> > +                     RISCV_HWPROBE_EXT_ZVFHMIN : 0;
> > +            value |= cfg->ext_zfa ?
> > +                     RISCV_HWPROBE_EXT_ZFA : 0;
> > +            value |= cfg->ext_zacas ?
> > +                     RISCV_HWPROBE_EXT_ZACAS : 0;
> > +            value |= cfg->ext_zicond ?
> > +                     RISCV_HWPROBE_EXT_ZICOND : 0;
> >              __put_user(value, &pair->value);
> >              break;
> >          case RISCV_HWPROBE_KEY_CPUPERF_0:
> > --
> > 2.43.0
> >
> >


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

end of thread, other threads:[~2024-03-08 13:16 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-07 11:59 [PATCH 0/2] linux-user/riscv: Sync hwprobe keys with kernel Christoph Müllner
2024-02-07 11:59 ` [PATCH 1/2] linux-user/riscv: Add Zicboz extensions to hwprobe Christoph Müllner
2024-02-14 13:26   ` Daniel Henrique Barboza
2024-02-07 11:59 ` [PATCH 2/2] linux-user/riscv: Sync hwprobe keys with Linux Christoph Müllner
2024-02-14 13:26   ` Daniel Henrique Barboza
2024-03-08  4:22   ` Alistair Francis
2024-03-08 13:15     ` Christoph Müllner
2024-02-15  9:54 ` [PATCH 0/2] linux-user/riscv: Sync hwprobe keys with kernel Alistair Francis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).