diff options
Diffstat (limited to 'results/classifier/118/none/1755479')
| -rw-r--r-- | results/classifier/118/none/1755479 | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/results/classifier/118/none/1755479 b/results/classifier/118/none/1755479 new file mode 100644 index 000000000..d0b5cb207 --- /dev/null +++ b/results/classifier/118/none/1755479 @@ -0,0 +1,79 @@ +graphic: 0.719 +performance: 0.707 +peripherals: 0.690 +virtual: 0.680 +architecture: 0.651 +register: 0.644 +debug: 0.636 +semantic: 0.614 +network: 0.603 +hypervisor: 0.600 +kernel: 0.594 +user-level: 0.593 +device: 0.590 +socket: 0.586 +permissions: 0.571 +arm: 0.564 +files: 0.562 +ppc: 0.548 +PID: 0.545 +vnc: 0.522 +boot: 0.521 +x86: 0.517 +assembly: 0.516 +mistranslation: 0.515 +TCG: 0.475 +VMM: 0.462 +KVM: 0.434 +risc-v: 0.427 +i386: 0.411 + +Cortex M:qemu abort with optimized code and icount + +A basic program runs fine if compiled with flag -O0 with gcc, but triggers a qemu abort when compiled with -O1 and run with icount: +"qemu: fatal: IO on conditional branch instruction" + +I also noticed the problem on C source like this with -O0: +"int foo = *bar; bar++;" : OK +"int foo = *bar++;" : FAIL (!!!) + +Optimized binary attached to this ticket. + +command line: +qemu-system-arm -M lm3s6965evb -nographic -kernel hello.bin -serial file:$(tty) -icount 4 -cpu cortex-m4 +(working fine without icount) + +version: +QEMU emulator version 2.11.50 (v2.11.0-2146-gd9bbfea-dirty) + +Compilation options: +./configure --target-list=arm-softmmu --disable-slirp --disable-blobs --disable-docs --disable-guest-agent --disable-gnutls --disable-nettle --disable-gcrypt --disable-sdl --disable-gtk --disable-vnc --disable-virtfs --disable-mpath --disable-xen --disable-brlapi --disable-curl --disable-bluez --disable-kvm --disable-hax --disable-hvf --disable-whpx --disable-rdma --disable-vde --disable-netmap --disable-linux-aio --disable-cap-ng --disable-attr --disable-vhost-net --disable-spice --disable-rbd --disable-libiscsi --disable-libnfs --disable-smartcard --disable-libusb --disable-live-block-migration --disable-usb-redir --disable-lzo --disable-snappy --disable-bzip2 --disable-seccomp --disable-glusterfs --disable-tpm --disable-libssh2 --disable-numa --disable-libxml2 --disable-tcmalloc --disable-jemalloc --disable-replication --disable-vhost-vsock --disable-opengl --disable-virglrenderer --disable-xfsctl --disable-qom-cast-debug --disable-vxhs --disable-crypto-afalg --disable-vhost-user --disable-capstone --disable-pie --extra-cflags=-mtune=native + +I have also tested previous versions: +- stock qemu-system-arm 2.5.0 from ubuntu 16.04: OK +- git version: QEMU emulator version 2.10.0 (v2.10.2-dirty): OK +- git version: QEMU emulator version 2.10.90 (v2.11.0-rc0-dirty): FAIL + + + +Yes, it looks like we accidentally broke icount. This patch from the mailing list fixes it: +https://lists.gnu.org/archive/html/qemu-devel/2018-02/msg06595.html + +though it hasn't been code-reviewed yet. + + +I just tested the patch and it resolves this problem. Thanks! + +Hey Antoine, do you mind replying to the list thread with a single line such: + + Tested-by: Antoine Calando <email address hidden> + +This will help the code review and the patch will probably get merged faster. + +Thanks. + +That's not really necessary as the patch is already in Paolo's pull request. + + +This is now fixed in master (and will be in 2.12.0) with commits 0790f8686107 and 87f963be66a32453e001. + |