qemu-x86_64 fails on A72 cores, but runs nice on A53 ones :) - Printable Version +- PINE64 (https://forum.pine64.org) +-- Forum: ROCKPRO64 (https://forum.pine64.org/forumdisplay.php?fid=98) +--- Forum: Linux on RockPro64 (https://forum.pine64.org/forumdisplay.php?fid=101) +--- Thread: qemu-x86_64 fails on A72 cores, but runs nice on A53 ones :) (/showthread.php?tid=6650) |
qemu-x86_64 fails on A72 cores, but runs nice on A53 ones :) - guannais - 10-11-2018 I have tried to emulate a chroot for x86_64 architecture and it gave me inconsistent results, random successes and fails: Code: jinks /disco2/chroot/amd64 # chroot . /bin/bash Finally I got it to work, by forbidding to run on the last 2 cores: Code: jinks /disco2/chroot/amd64 # schedtool -a 0xf -e chroot . /bin/bash And it is stable. A bit more of information: Code: # uname -a; qemu-x86_64 --version; gcc --version RE: qemu-x86_64 fails on A72 cores, but runs nice on A53 ones :) - tuxd3v - 10-11-2018 (10-11-2018, 07:32 PM)guannais Wrote: I have tried to emulate a chroot for x86_64 architecture and it gave me inconsistent results, random successes and fails: So what is your compiler? RE: qemu-x86_64 fails on A72 cores, but runs nice on A53 ones :) - guannais - 10-13-2018 It is GCC 7.3.0. RE: qemu-x86_64 fails on A72 cores, but runs nice on A53 ones :) - tuxd3v - 10-15-2018 (10-13-2018, 08:58 AM)guannais Wrote: It is GCC 7.3.0. Sorry and thanks for that, I haven saw it in above. I had some problems in the past when I tried to tune compilation process, using both a72 and a53, but not with Quemu.. The Solution I found was , "the common ground", compile for A53.. Then no more problems.. The quemu you are using was compiled by you? I found some instructions, https://www.atrixnet.com/compile-qemu-from-source-and-make-a-debian-package-with-checkinstall/ But they need better tune on configure.ac, they use explicit call, on configure directly..if you tune configure.ac, you could avoid explicit arguments passed to configure. This is an option, and make some debug, of it. Probably its duo to A72 being a 3 way superscaler, out of order, with 2 speculative out of order branch's, I think, but I am not sure, about speculation implemented on A72. I was asking about compiler, because compiler have been receiving a lot of attention because of meltdown and spectre Compiling it you can have a better, control of whats going on. RE: qemu-x86_64 fails on A72 cores, but runs nice on A53 ones :) - tuxd3v - 11-01-2018 Hello guannais, One thing that ocurred me, looking into gcc 7.3 Documentation.. Try to compile Quemu with: Code: -march=armv8-a+crc -mtune=cortex-a72.cortex-a53 In this way code will be optimized for Big.Litle cluster.. RE: qemu-x86_64 fails on A72 cores, but runs nice on A53 ones :) - guannais - 11-03-2018 (11-01-2018, 01:48 PM)tuxd3v Wrote: Hello guannais, Thanks for the performance advice Since "qemu" recompiles the code on the fly it may be a problem with the code generator for ARM. What is strange is that any A72 core should be binary compatible with any A53 one, just the armv8-a instruction set. I was compiling with those flags: Code: CFLAGS="-march=armv8-a+simd+crc -mtune=cortex-a53 -mfix-cortex-a53-843419 -Os -pipe" RE: qemu-x86_64 fails on A72 cores, but runs nice on A53 ones :) - tuxd3v - 11-04-2018 (11-03-2018, 08:43 PM)guannais Wrote: Thanks for the performance advice You welcome, In theory, Code: -march=armv8-a+crypto+crc Should enable: { "fp asimd" + "aes pmull sha1 sha2" } + { "crc32" } But if you look into the definitions, that its not clear.. https://code.woboq.org/gcc/gcc/config/aarch64/aarch64-option-extensions.def.html So better do a explicit request: Code: -march=armv8-a+simd+crypto+crc not sure about: " evtstrm : kernel event stream using generic architected timer.. " I think that landed in gcc 8.x, when you use crypto, it already add fp+simd, but I don't know if its already in stable version.. so I tell him explicitly to use the extensions.. |