On 11/10/23 14:37, Palmer Dabbelt wrote:
Support for probing the Zicboz block size landed in Linux 6.6, which was
released a few weeks ago.  This provides the user-configured block size
when Zicboz is enabled.

Signed-off-by: Palmer Dabbelt <pal...@rivosinc.com>
---

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


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

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 65ac3ac796..7caacf43d6 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8808,6 +8808,8 @@ static int do_getdents64(abi_long dirfd, abi_long arg2, 
abi_long count)
  #define     RISCV_HWPROBE_MISALIGNED_UNSUPPORTED (4 << 0)
  #define     RISCV_HWPROBE_MISALIGNED_MASK        (7 << 0)
+#define RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE 6
+
  struct riscv_hwprobe {
      abi_llong  key;
      abi_ullong value;
@@ -8860,6 +8862,10 @@ static void risc_hwprobe_fill_pairs(CPURISCVState *env,
          case RISCV_HWPROBE_KEY_CPUPERF_0:
              __put_user(RISCV_HWPROBE_MISALIGNED_FAST, &pair->value);
              break;
+        case RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE:
+            value = cfg->ext_zicboz ? cfg->cboz_blocksize : 0;
+            __put_user(value, &pair->value);
+            break;
          default:
              __put_user(-1, &pair->key);
              break;

Reply via email to