diff options
Diffstat (limited to 'results/classifier/118/TCG-arm')
| -rw-r--r-- | results/classifier/118/TCG-arm/1500 | 98 | ||||
| -rw-r--r-- | results/classifier/118/TCG-arm/1634726 | 108 | ||||
| -rw-r--r-- | results/classifier/118/TCG-arm/1697 | 79 | ||||
| -rw-r--r-- | results/classifier/118/TCG-arm/2570 | 115 | ||||
| -rw-r--r-- | results/classifier/118/TCG-arm/2585 | 67 |
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(). |