summary refs log tree commit diff stats
path: root/results/classifier/118/architecture-risc-v
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/118/architecture-risc-v')
-rw-r--r--results/classifier/118/architecture-risc-v/126061
-rw-r--r--results/classifier/118/architecture-risc-v/191502774
-rw-r--r--results/classifier/118/architecture-risc-v/192362998
-rw-r--r--results/classifier/118/architecture-risc-v/194561
-rw-r--r--results/classifier/118/architecture-risc-v/216661
-rw-r--r--results/classifier/118/architecture-risc-v/295274
-rw-r--r--results/classifier/118/architecture-risc-v/43561
-rw-r--r--results/classifier/118/architecture-risc-v/49367
-rw-r--r--results/classifier/118/architecture-risc-v/78363
9 files changed, 620 insertions, 0 deletions
diff --git a/results/classifier/118/architecture-risc-v/1260 b/results/classifier/118/architecture-risc-v/1260
new file mode 100644
index 000000000..2cef4e76c
--- /dev/null
+++ b/results/classifier/118/architecture-risc-v/1260
@@ -0,0 +1,61 @@
+risc-v: 0.976
+architecture: 0.957
+device: 0.771
+register: 0.697
+debug: 0.617
+graphic: 0.468
+performance: 0.465
+network: 0.436
+arm: 0.372
+mistranslation: 0.230
+semantic: 0.221
+vnc: 0.102
+virtual: 0.095
+hypervisor: 0.093
+ppc: 0.091
+peripherals: 0.086
+kernel: 0.084
+boot: 0.084
+user-level: 0.044
+TCG: 0.034
+PID: 0.034
+i386: 0.027
+permissions: 0.024
+VMM: 0.021
+assembly: 0.019
+x86: 0.018
+KVM: 0.009
+socket: 0.007
+files: 0.005
+--------------------
+risc-v: 0.991
+debug: 0.973
+register: 0.969
+virtual: 0.642
+user-level: 0.434
+assembly: 0.175
+hypervisor: 0.087
+architecture: 0.050
+semantic: 0.036
+kernel: 0.034
+files: 0.030
+TCG: 0.026
+performance: 0.020
+VMM: 0.010
+peripherals: 0.007
+device: 0.006
+PID: 0.005
+KVM: 0.004
+boot: 0.004
+graphic: 0.002
+socket: 0.001
+mistranslation: 0.001
+vnc: 0.001
+arm: 0.000
+permissions: 0.000
+network: 0.000
+ppc: 0.000
+i386: 0.000
+x86: 0.000
+
+RISC-V sstatus register is missing in qemu console / gdb
diff --git a/results/classifier/118/architecture-risc-v/1915027 b/results/classifier/118/architecture-risc-v/1915027
new file mode 100644
index 000000000..c487cb658
--- /dev/null
+++ b/results/classifier/118/architecture-risc-v/1915027
@@ -0,0 +1,74 @@
+architecture: 0.952
+risc-v: 0.916
+assembly: 0.781
+graphic: 0.759
+performance: 0.649
+device: 0.634
+semantic: 0.632
+mistranslation: 0.442
+permissions: 0.288
+vnc: 0.284
+debug: 0.274
+register: 0.245
+virtual: 0.240
+user-level: 0.209
+ppc: 0.207
+network: 0.181
+peripherals: 0.174
+arm: 0.148
+boot: 0.140
+PID: 0.138
+kernel: 0.133
+socket: 0.116
+x86: 0.109
+TCG: 0.107
+VMM: 0.089
+files: 0.081
+hypervisor: 0.070
+i386: 0.054
+KVM: 0.044
+--------------------
+risc-v: 0.998
+debug: 0.831
+virtual: 0.450
+performance: 0.070
+register: 0.067
+assembly: 0.067
+architecture: 0.021
+hypervisor: 0.020
+boot: 0.015
+semantic: 0.005
+TCG: 0.004
+PID: 0.004
+files: 0.003
+user-level: 0.003
+kernel: 0.002
+device: 0.002
+socket: 0.001
+KVM: 0.001
+network: 0.001
+graphic: 0.001
+permissions: 0.001
+VMM: 0.000
+peripherals: 0.000
+vnc: 0.000
+mistranslation: 0.000
+arm: 0.000
+x86: 0.000
+i386: 0.000
+ppc: 0.000
+
+RISC-V 64, CPUs do ilegal 0x00 write with SMP
+
+When QEMU is runt like this:
+
+qemu-system-riscv64 -d unimp,guest_errors -smp 8
+
+Other harts will do a illegal write on address 0x00.
+
+This could be mostly (i think) because the initial assembly code is only loaded on the first hart and the others do a mess because there is no code to execute.
+
+Even with -smp 1 you will see the same errors. The problem is because there is nothing to run after OpenSBI jumps to the next stage.
+
+If you load a kernel you will not see the error messages.
+
diff --git a/results/classifier/118/architecture-risc-v/1923629 b/results/classifier/118/architecture-risc-v/1923629
new file mode 100644
index 000000000..cc32274c4
--- /dev/null
+++ b/results/classifier/118/architecture-risc-v/1923629
@@ -0,0 +1,98 @@
+risc-v: 0.953
+architecture: 0.878
+performance: 0.868
+graphic: 0.795
+user-level: 0.783
+device: 0.773
+files: 0.738
+network: 0.736
+socket: 0.730
+mistranslation: 0.690
+virtual: 0.677
+debug: 0.660
+semantic: 0.652
+hypervisor: 0.637
+ppc: 0.633
+kernel: 0.632
+PID: 0.629
+VMM: 0.610
+x86: 0.595
+boot: 0.569
+permissions: 0.563
+arm: 0.561
+register: 0.509
+TCG: 0.506
+peripherals: 0.501
+vnc: 0.496
+assembly: 0.459
+i386: 0.437
+KVM: 0.396
+--------------------
+risc-v: 0.875
+debug: 0.300
+assembly: 0.250
+performance: 0.091
+files: 0.050
+architecture: 0.044
+TCG: 0.023
+PID: 0.014
+virtual: 0.011
+hypervisor: 0.007
+semantic: 0.007
+user-level: 0.004
+register: 0.004
+kernel: 0.004
+VMM: 0.002
+network: 0.002
+device: 0.002
+vnc: 0.001
+boot: 0.001
+permissions: 0.001
+graphic: 0.001
+socket: 0.001
+peripherals: 0.001
+mistranslation: 0.000
+KVM: 0.000
+arm: 0.000
+ppc: 0.000
+i386: 0.000
+x86: 0.000
+
+RISC-V Vector Instruction vssub.vv not saturating
+
+I noticed doing a negate ( 0 – 0x80000000 ) using vssub.vv produces an incorrect result of 0x80000000 (should saturate to 0x7FFFFFFF).
+
+Here is the bit of the code:
+
+		vmv.v.i		v16, 0
+		…
+8f040457	vssub.vv	v8,v16,v8
+
+I believe the instruction encoding is correct (vssub.vv with vd = v8, vs2 = v16, rs1 = v8), but the result does not saturate in QEMU.
+
+I’ve just tested with what I think is the latest branch ( https://github.com/sifive/qemu/tree/rvv-1.0-upstream-v7 commit 26 Feb 2021: 1151361fa7d45cc90d69086ccf1a4d8397931811 ) and the problem still exists.
+
+Thanks for raising this bug case. A fix should be available soon.
+
+This should be a quick fix, we will run couple tests again to ensure the fix doesn't break anything. Thanks~
+
+This was fixed by commit:
+
+commit 65606f21243a796537bfe4708720a9bf4bb50169
+Author: LIU Zhiwei <email address hidden>
+Date:   Fri Feb 12 23:02:21 2021 +0800
+
+    target/riscv: Fixup saturate subtract function
+    
+    The overflow predication ((a - b) ^ a) & (a ^ b) & INT64_MIN is right.
+    However, when the predication is ture and a is 0, it should return maximum.
+    
+    Signed-off-by: LIU Zhiwei <email address hidden>
+    Reviewed-by: Richard Henderson <email address hidden>
+    Reviewed-by: Alistair Francis <email address hidden>
+    Message-id: <email address hidden>
+    Signed-off-by: Alistair Francis <email address hidden>
+
+
+The fix will be in the QEMU 6.1 release.
+
diff --git a/results/classifier/118/architecture-risc-v/1945 b/results/classifier/118/architecture-risc-v/1945
new file mode 100644
index 000000000..fc01bd3e7
--- /dev/null
+++ b/results/classifier/118/architecture-risc-v/1945
@@ -0,0 +1,61 @@
+architecture: 0.977
+virtual: 0.920
+risc-v: 0.885
+performance: 0.859
+device: 0.529
+semantic: 0.493
+graphic: 0.464
+mistranslation: 0.450
+permissions: 0.389
+boot: 0.283
+vnc: 0.281
+VMM: 0.225
+network: 0.198
+arm: 0.176
+hypervisor: 0.171
+register: 0.167
+assembly: 0.160
+x86: 0.150
+KVM: 0.141
+socket: 0.140
+kernel: 0.132
+TCG: 0.124
+PID: 0.093
+ppc: 0.091
+debug: 0.081
+i386: 0.051
+peripherals: 0.042
+user-level: 0.040
+files: 0.028
+--------------------
+risc-v: 0.992
+hypervisor: 0.952
+virtual: 0.896
+architecture: 0.854
+VMM: 0.669
+performance: 0.598
+semantic: 0.054
+KVM: 0.040
+device: 0.039
+kernel: 0.022
+register: 0.016
+TCG: 0.013
+assembly: 0.009
+files: 0.004
+PID: 0.003
+socket: 0.002
+user-level: 0.002
+graphic: 0.002
+boot: 0.001
+vnc: 0.001
+peripherals: 0.001
+mistranslation: 0.001
+debug: 0.001
+arm: 0.000
+ppc: 0.000
+network: 0.000
+permissions: 0.000
+i386: 0.000
+x86: 0.000
+
+More than 8 cores for RISC-V generic `virt` machine
diff --git a/results/classifier/118/architecture-risc-v/2166 b/results/classifier/118/architecture-risc-v/2166
new file mode 100644
index 000000000..6d3eda5b8
--- /dev/null
+++ b/results/classifier/118/architecture-risc-v/2166
@@ -0,0 +1,61 @@
+risc-v: 0.964
+architecture: 0.886
+device: 0.842
+debug: 0.796
+network: 0.480
+performance: 0.428
+register: 0.317
+virtual: 0.306
+arm: 0.302
+boot: 0.286
+graphic: 0.283
+VMM: 0.258
+PID: 0.243
+peripherals: 0.163
+files: 0.161
+semantic: 0.147
+vnc: 0.123
+socket: 0.060
+permissions: 0.058
+mistranslation: 0.057
+hypervisor: 0.038
+user-level: 0.024
+TCG: 0.022
+ppc: 0.017
+assembly: 0.012
+i386: 0.011
+x86: 0.007
+kernel: 0.003
+KVM: 0.001
+--------------------
+risc-v: 0.995
+hypervisor: 0.935
+debug: 0.925
+architecture: 0.181
+register: 0.045
+user-level: 0.044
+TCG: 0.036
+assembly: 0.030
+kernel: 0.027
+virtual: 0.024
+semantic: 0.018
+VMM: 0.014
+files: 0.011
+performance: 0.009
+device: 0.005
+PID: 0.005
+KVM: 0.002
+boot: 0.002
+peripherals: 0.002
+graphic: 0.001
+mistranslation: 0.001
+network: 0.001
+socket: 0.001
+vnc: 0.001
+permissions: 0.000
+arm: 0.000
+i386: 0.000
+ppc: 0.000
+x86: 0.000
+
+RISC-V qemu has bug on the return value of function qemu_plugin_mem_size_shift()
diff --git a/results/classifier/118/architecture-risc-v/2952 b/results/classifier/118/architecture-risc-v/2952
new file mode 100644
index 000000000..3a2e4aab5
--- /dev/null
+++ b/results/classifier/118/architecture-risc-v/2952
@@ -0,0 +1,74 @@
+risc-v: 0.943
+files: 0.845
+graphic: 0.841
+architecture: 0.819
+device: 0.814
+register: 0.793
+vnc: 0.713
+socket: 0.564
+kernel: 0.500
+performance: 0.468
+semantic: 0.466
+ppc: 0.439
+network: 0.418
+boot: 0.404
+permissions: 0.394
+TCG: 0.354
+assembly: 0.323
+debug: 0.318
+PID: 0.303
+arm: 0.271
+mistranslation: 0.257
+VMM: 0.231
+virtual: 0.171
+user-level: 0.150
+peripherals: 0.109
+hypervisor: 0.063
+KVM: 0.037
+i386: 0.022
+x86: 0.009
+--------------------
+risc-v: 0.966
+register: 0.860
+assembly: 0.609
+debug: 0.461
+TCG: 0.350
+virtual: 0.063
+user-level: 0.062
+files: 0.055
+semantic: 0.021
+kernel: 0.018
+hypervisor: 0.015
+architecture: 0.009
+device: 0.008
+performance: 0.008
+peripherals: 0.006
+VMM: 0.006
+PID: 0.004
+boot: 0.003
+graphic: 0.003
+network: 0.002
+socket: 0.001
+KVM: 0.001
+permissions: 0.001
+vnc: 0.001
+mistranslation: 0.001
+arm: 0.000
+i386: 0.000
+ppc: 0.000
+x86: 0.000
+
+Truncated bits while writing value to registers of RISC-V
+Description of problem:
+As mentioned above
+Steps to reproduce:
+```
+# 1. Compile the `test.S`:
+riscv32-unknown-linux-gnu-gcc -g -static -nostartfiles -o test hello.S
+
+# 2. Execute the binary:
+qemu-riscv32 ./test
+
+# 3. Check exit code
+echo $?
+```
diff --git a/results/classifier/118/architecture-risc-v/435 b/results/classifier/118/architecture-risc-v/435
new file mode 100644
index 000000000..82a3d91af
--- /dev/null
+++ b/results/classifier/118/architecture-risc-v/435
@@ -0,0 +1,61 @@
+architecture: 0.988
+risc-v: 0.958
+virtual: 0.798
+mistranslation: 0.733
+performance: 0.690
+device: 0.634
+semantic: 0.582
+graphic: 0.280
+boot: 0.279
+register: 0.261
+x86: 0.237
+vnc: 0.228
+network: 0.169
+arm: 0.148
+kernel: 0.144
+debug: 0.136
+socket: 0.134
+hypervisor: 0.125
+ppc: 0.115
+permissions: 0.112
+i386: 0.101
+PID: 0.086
+assembly: 0.077
+user-level: 0.051
+KVM: 0.044
+TCG: 0.043
+files: 0.034
+VMM: 0.033
+peripherals: 0.022
+--------------------
+risc-v: 0.997
+architecture: 0.974
+register: 0.245
+virtual: 0.172
+kernel: 0.094
+files: 0.034
+assembly: 0.033
+TCG: 0.030
+semantic: 0.024
+performance: 0.022
+device: 0.016
+peripherals: 0.013
+VMM: 0.011
+PID: 0.006
+boot: 0.006
+user-level: 0.005
+socket: 0.005
+hypervisor: 0.004
+permissions: 0.004
+debug: 0.003
+graphic: 0.003
+vnc: 0.002
+arm: 0.001
+network: 0.001
+KVM: 0.001
+mistranslation: 0.000
+ppc: 0.000
+i386: 0.000
+x86: 0.000
+
+RISC-V: Support more cores
diff --git a/results/classifier/118/architecture-risc-v/493 b/results/classifier/118/architecture-risc-v/493
new file mode 100644
index 000000000..21e555eaf
--- /dev/null
+++ b/results/classifier/118/architecture-risc-v/493
@@ -0,0 +1,67 @@
+risc-v: 0.995
+architecture: 0.955
+graphic: 0.849
+device: 0.810
+performance: 0.696
+semantic: 0.644
+files: 0.588
+kernel: 0.547
+register: 0.533
+vnc: 0.466
+socket: 0.369
+mistranslation: 0.368
+network: 0.353
+debug: 0.295
+boot: 0.272
+VMM: 0.271
+arm: 0.242
+permissions: 0.230
+peripherals: 0.215
+PID: 0.206
+ppc: 0.193
+TCG: 0.157
+user-level: 0.146
+assembly: 0.130
+hypervisor: 0.121
+virtual: 0.099
+i386: 0.079
+KVM: 0.064
+x86: 0.016
+--------------------
+risc-v: 0.998
+performance: 0.905
+kernel: 0.184
+register: 0.116
+TCG: 0.113
+debug: 0.104
+files: 0.080
+hypervisor: 0.038
+assembly: 0.032
+architecture: 0.029
+device: 0.021
+virtual: 0.015
+semantic: 0.008
+peripherals: 0.007
+user-level: 0.005
+vnc: 0.003
+PID: 0.003
+network: 0.002
+KVM: 0.002
+boot: 0.002
+VMM: 0.002
+arm: 0.001
+socket: 0.001
+graphic: 0.001
+permissions: 0.001
+mistranslation: 0.000
+i386: 0.000
+ppc: 0.000
+x86: 0.000
+
+RISC-V: Setting mtimecmp to -1 immediately triggers an interrupt
+Description of problem:
+When setting mtimecmp to -1, which should set a timer infinitely far in the future, a timer interrupt is triggered immediately. This happens for most values over 2^61. It is the same for both 32-bit and 64-bit, and for M-mode writing to mtimecmp directly and S-mode using OpenSBI.
+
+I have looked through the source code, and the problem is in the function `sifive_clint_write_mtimecmp`, in the file `/hw/intc/sifive_clint.c`. First, the muldiv64 multiplies diff with 100, causing an overflow (at least for -M virt, other machines might use a different timebase_freq). Then, the unsigned `next` is passed to `timer_mod`, which takes a signed integer. In `timer_mod_ns_locked` the value is set to `MAX(next, 0)`, which means that if the MSB of `next` was set, the interrupt happens immediately. This means that it is impossible to set timers more than 2^63 nanoseconds in the future.
+
+This problem basically only affects programs which disable timer interrupts by setting the next one infinitely far in the future. However, the SBI doc specifically says that this is a valid approach, so it should be supported. Using the MSB doesn't work without changing code functionality in QEMU, but it should be sufficient to cap `next` at the maximum signed value.
diff --git a/results/classifier/118/architecture-risc-v/783 b/results/classifier/118/architecture-risc-v/783
new file mode 100644
index 000000000..581891f04
--- /dev/null
+++ b/results/classifier/118/architecture-risc-v/783
@@ -0,0 +1,63 @@
+risc-v: 0.997
+architecture: 0.869
+performance: 0.769
+device: 0.767
+mistranslation: 0.569
+virtual: 0.492
+i386: 0.483
+graphic: 0.370
+x86: 0.369
+semantic: 0.368
+arm: 0.278
+boot: 0.173
+debug: 0.164
+permissions: 0.153
+register: 0.151
+kernel: 0.129
+hypervisor: 0.127
+user-level: 0.123
+network: 0.121
+ppc: 0.121
+vnc: 0.109
+KVM: 0.061
+TCG: 0.054
+files: 0.038
+PID: 0.033
+assembly: 0.031
+socket: 0.025
+peripherals: 0.018
+VMM: 0.011
+--------------------
+risc-v: 0.997
+assembly: 0.509
+virtual: 0.175
+architecture: 0.169
+kernel: 0.130
+hypervisor: 0.102
+device: 0.075
+register: 0.035
+x86: 0.028
+boot: 0.018
+files: 0.017
+socket: 0.017
+debug: 0.014
+semantic: 0.013
+TCG: 0.010
+PID: 0.009
+performance: 0.007
+user-level: 0.007
+i386: 0.006
+ppc: 0.005
+arm: 0.004
+KVM: 0.004
+peripherals: 0.004
+permissions: 0.003
+VMM: 0.002
+vnc: 0.001
+graphic: 0.001
+network: 0.001
+mistranslation: 0.001
+
+risc-v: provide CPU without MMU
+Additional information:
+