summary refs log tree commit diff stats
path: root/results/classifier/118/TCG-arm
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/118/TCG-arm')
-rw-r--r--results/classifier/118/TCG-arm/150098
-rw-r--r--results/classifier/118/TCG-arm/1634726108
-rw-r--r--results/classifier/118/TCG-arm/169779
-rw-r--r--results/classifier/118/TCG-arm/2570115
-rw-r--r--results/classifier/118/TCG-arm/258567
5 files changed, 467 insertions, 0 deletions
diff --git a/results/classifier/118/TCG-arm/1500 b/results/classifier/118/TCG-arm/1500
new file mode 100644
index 000000000..66dfe9ad5
--- /dev/null
+++ b/results/classifier/118/TCG-arm/1500
@@ -0,0 +1,98 @@
+TCG: 0.904
+kernel: 0.893
+arm: 0.876
+graphic: 0.789
+device: 0.769
+register: 0.746
+ppc: 0.692
+debug: 0.682
+permissions: 0.675
+assembly: 0.664
+architecture: 0.624
+socket: 0.597
+vnc: 0.589
+PID: 0.528
+risc-v: 0.523
+semantic: 0.515
+network: 0.514
+files: 0.504
+boot: 0.441
+KVM: 0.414
+VMM: 0.372
+x86: 0.362
+user-level: 0.346
+hypervisor: 0.326
+performance: 0.259
+mistranslation: 0.257
+virtual: 0.244
+peripherals: 0.228
+i386: 0.204
+--------------------
+arm: 0.999
+TCG: 0.234
+assembly: 0.081
+register: 0.055
+kernel: 0.047
+files: 0.038
+hypervisor: 0.020
+debug: 0.019
+virtual: 0.017
+semantic: 0.007
+PID: 0.007
+device: 0.007
+performance: 0.006
+architecture: 0.005
+network: 0.005
+socket: 0.004
+user-level: 0.003
+risc-v: 0.003
+vnc: 0.003
+VMM: 0.003
+boot: 0.002
+graphic: 0.001
+peripherals: 0.001
+permissions: 0.001
+KVM: 0.001
+ppc: 0.000
+mistranslation: 0.000
+i386: 0.000
+x86: 0.000
+
+Some system/debug regisiters are inconsistent with real device in qemu-system-arm
+Description of problem:
+We used differential testing to compared the instruction consistency (ARMv7) between QEMU and raspberry pi 2B in system level and some inconsistency in system regisiter was detected.
+
+1. CCSIDR--Cache Size ID Registers
+
+   **Inconsistency**
+
+   - CCSIDR in QEMU: 0x701fe00a--Associativity: 2, Number of sets:256
+
+   - CCSIDR in  Raspi2B: 0x700fe01a--Associativity: 4, Number of sets:128
+
+   **Tested Instruction sample**
+
+   - MRC_T1A1_A 11101110001100000000111100010000 0xee300f10
+
+   According to ARMv7 Manual B4.1.19 encoding, the NumSets and Associativity are set different bewteen QEMU when emulating raspi2b and raspi2b.
+
+   The CCSIDR is set in the function`cortex_a7_initfn(Object *obj)` in target/arm/cpu_tcg.c for cortex_a7. 
+
+2. DBGDRAR--Debug ROM Address Register
+
+   **Inconsistency**
+
+   - DBGDRAR in QEMU: 0x0 --Invalid
+
+   - DBGDRAR in  Raspi2B: 0x40020003--Valid
+
+   According to ARMv7 Manual C11.11.16 encoding, the DBGDRAR in qemu is invalid.
+
+   **Tested Instruction sample**
+
+   - MRC_T1A1_A 11101110000100010001111000010000 0xee111e10
+Steps to reproduce:
+1. Compile a kernel module to run the test instruction in PL1.
+2. Use kgdb to get the register info
+Additional information:
+
diff --git a/results/classifier/118/TCG-arm/1634726 b/results/classifier/118/TCG-arm/1634726
new file mode 100644
index 000000000..a2910120c
--- /dev/null
+++ b/results/classifier/118/TCG-arm/1634726
@@ -0,0 +1,108 @@
+TCG: 0.893
+architecture: 0.889
+arm: 0.827
+network: 0.781
+vnc: 0.725
+device: 0.696
+PID: 0.687
+user-level: 0.675
+kernel: 0.661
+ppc: 0.622
+virtual: 0.602
+graphic: 0.590
+semantic: 0.587
+VMM: 0.543
+socket: 0.543
+performance: 0.524
+mistranslation: 0.490
+debug: 0.449
+peripherals: 0.359
+hypervisor: 0.346
+boot: 0.339
+register: 0.334
+KVM: 0.318
+files: 0.312
+risc-v: 0.298
+permissions: 0.248
+assembly: 0.242
+i386: 0.048
+x86: 0.023
+--------------------
+arm: 0.934
+user-level: 0.876
+kernel: 0.799
+TCG: 0.647
+hypervisor: 0.334
+register: 0.119
+PID: 0.092
+files: 0.057
+vnc: 0.054
+debug: 0.049
+device: 0.037
+KVM: 0.020
+socket: 0.011
+VMM: 0.008
+virtual: 0.007
+semantic: 0.004
+boot: 0.003
+network: 0.003
+architecture: 0.002
+risc-v: 0.002
+graphic: 0.001
+performance: 0.001
+peripherals: 0.001
+assembly: 0.001
+mistranslation: 0.000
+permissions: 0.000
+x86: 0.000
+ppc: 0.000
+i386: 0.000
+
+qemu "make test" fails in iov.c with "undefined reference" on aarch64 on Ubuntu 16.04
+
+I'm building the master tree on a multicore ARMv8 machine running Ubuntu 16.04. The build worked just fine, using the simple directions in the README file and "make -j 64" to do the build.
+
+Next, I did "make test", and got this:
+
+emv@armv8hello:~/src/qemu/qemu/build$ make test
+make -C tests/tcg test
+make[1]: Entering directory '/mnt/src/qemu/qemu/build/tests/tcg'
+  CC      test_path.o
+  LINK    test_path
+test_path.o: In function `qemu_iovec_is_zero':
+/home/emv/src/qemu/qemu/util/iov.c:365: undefined reference to `buffer_is_zero'
+collect2: error: ld returned 1 exit status
+/home/emv/src/qemu/qemu/rules.mak:105: recipe for target 'test_path' failed
+make[1]: *** [test_path] Error 1
+make[1]: Leaving directory '/mnt/src/qemu/qemu/build/tests/tcg'
+Makefile:498: recipe for target 'test' failed
+make: *** [test] Error 2
+
+I expected "make test" to complete with no errors.
+
+uname -a:
+Linux armv8hello.local.lan 4.4.0-38-generic #57-Ubuntu SMP Wed Sep 7 10:19:14 UTC 2016 aarch64 aarch64 aarch64 GNU/Linux
+
+emv@armv8hello:~/src/qemu/qemu$ more VERSION 
+2.7.50
+
+You want 'make check' to run the self-tests. 'make test' is a bunch of broken old stuff :-(
+
+
+Ah, perhaps this bug should be renamed, "remove make test target".
+
+While I'm noting things, "make check" builds OK on this system, complaining only about kvm. My next goal is "make docker-test".
+
+"make docker-test" fails repeatedly with
+
+Pulling repository docker.io/library/qemu
+docker: Error: image library/qemu:debian-bootstrap not found.
+See 'docker run --help'.
+Pulling repository docker.io/library/qemu
+docker: Error: image library/qemu:fedora not found.
+See 'docker run --help'.
+
+etc.
+
+"make test" has been removed, so I'll mark this as fixed now.
+
diff --git a/results/classifier/118/TCG-arm/1697 b/results/classifier/118/TCG-arm/1697
new file mode 100644
index 000000000..5f70800eb
--- /dev/null
+++ b/results/classifier/118/TCG-arm/1697
@@ -0,0 +1,79 @@
+TCG: 0.949
+arm: 0.894
+device: 0.817
+graphic: 0.779
+user-level: 0.743
+vnc: 0.722
+ppc: 0.673
+performance: 0.663
+risc-v: 0.639
+files: 0.583
+PID: 0.576
+register: 0.549
+network: 0.547
+semantic: 0.506
+architecture: 0.503
+socket: 0.462
+boot: 0.426
+VMM: 0.396
+hypervisor: 0.338
+i386: 0.329
+peripherals: 0.325
+permissions: 0.320
+x86: 0.294
+debug: 0.280
+assembly: 0.264
+virtual: 0.256
+mistranslation: 0.228
+kernel: 0.201
+KVM: 0.130
+--------------------
+arm: 0.993
+TCG: 0.757
+hypervisor: 0.518
+debug: 0.233
+files: 0.110
+virtual: 0.091
+performance: 0.060
+kernel: 0.047
+register: 0.019
+user-level: 0.018
+PID: 0.017
+device: 0.016
+assembly: 0.010
+architecture: 0.007
+semantic: 0.005
+boot: 0.004
+peripherals: 0.003
+VMM: 0.003
+socket: 0.002
+network: 0.002
+graphic: 0.002
+permissions: 0.001
+vnc: 0.001
+mistranslation: 0.001
+risc-v: 0.001
+KVM: 0.001
+x86: 0.000
+ppc: 0.000
+i386: 0.000
+
+qemu-arm -cpu cortex-m55 dummy_test qemu-arm: ../accel/tcg/user-exec.c:492: page_set_flags: Assertion `last <= GUEST_ADDR_MAX' failed.
+Description of problem:
+Basic testing failed for cortex m55
+Steps to reproduce:
+1.Pulled the newest qemu 8.0.50
+
+2.Create a Dummy test with only return 0 in main function
+
+3.run  ` arm-none-eabi-gcc -o dummy_test -O2 -g -mcpu=cortex-m55 dummy_test.cc --specs=rdimon.specs` and then `qemu-arm -cpu cortex-m55 dummy_test`
+
+`arm-none-eabi-gcc (Arm GNU Toolchain 12.2.MPACBTI-Rel1 (Build arm-12-mpacbti.34)) 12.2.1 20230214
+Copyright (C) 2022 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.`
+
+`qemu-arm version 8.0.50 (v8.0.0-1739-g5f9dd6a8ce)
+Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers`
+Additional information:
+It is a known problem in another issues: https://gitlab.com/qemu-project/qemu/-/issues/1528#note_1389268261.
diff --git a/results/classifier/118/TCG-arm/2570 b/results/classifier/118/TCG-arm/2570
new file mode 100644
index 000000000..86a8f142e
--- /dev/null
+++ b/results/classifier/118/TCG-arm/2570
@@ -0,0 +1,115 @@
+TCG: 0.883
+debug: 0.837
+graphic: 0.832
+PID: 0.824
+architecture: 0.802
+arm: 0.802
+x86: 0.800
+mistranslation: 0.794
+files: 0.794
+register: 0.784
+vnc: 0.782
+virtual: 0.777
+peripherals: 0.770
+semantic: 0.763
+ppc: 0.759
+network: 0.749
+socket: 0.745
+VMM: 0.744
+performance: 0.742
+permissions: 0.730
+device: 0.724
+risc-v: 0.715
+i386: 0.699
+user-level: 0.690
+kernel: 0.677
+boot: 0.674
+assembly: 0.633
+hypervisor: 0.612
+KVM: 0.575
+--------------------
+i386: 0.899
+TCG: 0.861
+x86: 0.822
+debug: 0.645
+virtual: 0.440
+user-level: 0.298
+files: 0.078
+PID: 0.044
+hypervisor: 0.033
+kernel: 0.021
+register: 0.014
+device: 0.010
+assembly: 0.009
+architecture: 0.009
+performance: 0.008
+semantic: 0.008
+network: 0.006
+VMM: 0.004
+socket: 0.004
+boot: 0.004
+graphic: 0.004
+permissions: 0.002
+KVM: 0.002
+ppc: 0.002
+peripherals: 0.002
+vnc: 0.001
+risc-v: 0.001
+mistranslation: 0.001
+arm: 0.000
+
+TCG Plugins: "Code should not be reached" error after resetting plugin from vcpu_tb_trans callback
+Description of problem:
+In a TCG plugin, using the `qemu_plugin_reset` method from within a `vcpu_tb_trans` callback produces the following error. If this isn't a supported use case, it should probably be described in the documentation. If this is supposed to work, it doesn't seem to.
+
+```
+**
+ERROR:/home/user/git/qemu/tcg/i386/tcg-target.c.inc:3018:tcg_out_op: code should not be reached
+Bail out! ERROR:/home/user/git/qemu/tcg/i386/tcg-target.c.inc:3018:tcg_out_op: code should not be reached
+Aborted (core dumped)
+```
+Steps to reproduce:
+1. Build the current head of master (4b7ea33074450bc6148c8e1545d78f179e64adb4) with the below `min` plugin (i.e., add to contrib/plugins and update contrib/plugins/Makefile so it is built)
+2. `../configure --enable-plugins --target-list=x86_64-softmmu --disable-docs`
+3. `make && make plugins`
+4. Get a qcow, e.g., the Ubuntu Bionic qcow from [here](https://panda.re/qcows/linux/ubuntu/1804/x86_64/bionic-server-cloudimg-amd64-noaslr-nokaslr.qcow2).
+5. `./qemu-system-x86_64 -plugin contrib/plugins/libmin.so bionic-server-cloudimg-amd64-noaslr-nokaslr.qcow2 -nographic`
+
+The first three lines are output by the plugin as expected, the error after that and the abort are unexpected:
+```
+Translating basic block
+Reset request issued
+Reset finished
+**
+ERROR:/home/user/git/qemu/tcg/i386/tcg-target.c.inc:3018:tcg_out_op: code should not be reached
+Bail out! ERROR:/home/user/git/qemu/tcg/i386/tcg-target.c.inc:3018:tcg_out_op: code should not be reached
+Aborted (core dumped)
+```
+Additional information:
+contrib/plugins/min.c
+```c
+#include <stdio.h>
+#include <qemu-plugin.h>
+
+QEMU_PLUGIN_EXPORT int qemu_plugin_version = QEMU_PLUGIN_VERSION;
+
+qemu_plugin_id_t plugin_id = {0};
+
+static void post_reset(qemu_plugin_id_t id) {
+    printf("Reset finished\n");
+}
+
+static void vcpu_tb_trans(qemu_plugin_id_t id, struct qemu_plugin_tb *tb) {
+    printf("Translating basic block\n");
+    qemu_plugin_reset(plugin_id, post_reset);
+    printf("Reset request issued\n");
+}
+
+QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id,
+                   const qemu_info_t *info, int argc, char **argv) {
+
+    qemu_plugin_register_vcpu_tb_trans_cb(id, vcpu_tb_trans);
+    plugin_id = id;
+    return 0;
+}
+```
diff --git a/results/classifier/118/TCG-arm/2585 b/results/classifier/118/TCG-arm/2585
new file mode 100644
index 000000000..f9c63b545
--- /dev/null
+++ b/results/classifier/118/TCG-arm/2585
@@ -0,0 +1,67 @@
+TCG: 0.935
+debug: 0.881
+arm: 0.848
+boot: 0.828
+device: 0.822
+architecture: 0.817
+peripherals: 0.802
+network: 0.725
+mistranslation: 0.718
+kernel: 0.618
+socket: 0.614
+graphic: 0.603
+semantic: 0.548
+i386: 0.540
+performance: 0.528
+PID: 0.516
+vnc: 0.504
+x86: 0.477
+register: 0.444
+risc-v: 0.440
+hypervisor: 0.422
+ppc: 0.410
+VMM: 0.363
+user-level: 0.349
+virtual: 0.250
+assembly: 0.248
+files: 0.246
+KVM: 0.196
+permissions: 0.160
+--------------------
+arm: 1.000
+TCG: 0.948
+hypervisor: 0.691
+debug: 0.644
+kernel: 0.098
+virtual: 0.050
+register: 0.030
+files: 0.027
+boot: 0.017
+device: 0.014
+user-level: 0.010
+architecture: 0.009
+KVM: 0.008
+peripherals: 0.008
+VMM: 0.007
+PID: 0.006
+assembly: 0.006
+performance: 0.005
+semantic: 0.003
+risc-v: 0.003
+ppc: 0.002
+network: 0.002
+permissions: 0.002
+socket: 0.001
+vnc: 0.001
+mistranslation: 0.001
+x86: 0.001
+graphic: 0.001
+i386: 0.000
+
+qemu-system-arm highmem support broken with TCG
+Additional information:
+I initially bisected this to commit 39a1fd25287f ("target/arm: Fix handling of LPAE block descriptors"), which introduced an identical bug by masking the wrong address bits due to a type mismatch, but this was in turn fixed by commit c2360eaa0262 ("target/arm: Fix qemu-system-arm handling of LPAE block descriptors for highmem"). The bug resurfaced between qemu-7.1.0 and qemu-7.2.0 after commit f3639a64f602 ("target/arm: Use softmmu tlbs for page table walking"), but may be caused by the preceding 4a35855682ce ("target/arm: Plumb debug into S1Translate") which fails to boot for an unrelated reason.
+
+I reproduced this on qemu-7.2 as shipped by Debian as well as on qemu-9.1 (built locally).
+
+Part of this problem appeared to be hidden by the 'highmem=on' argument not having the intended effect during parts of the bisection, which I worked around by overriding the 'pa_bits' variable in machvirt_init().