performance: 0.945 kernel: 0.925 boot: 0.916 architecture: 0.898 graphic: 0.830 arm: 0.804 device: 0.789 semantic: 0.758 virtual: 0.642 hypervisor: 0.577 TCG: 0.537 ppc: 0.525 PID: 0.506 VMM: 0.504 vnc: 0.499 risc-v: 0.498 user-level: 0.433 socket: 0.431 debug: 0.426 network: 0.298 permissions: 0.293 KVM: 0.251 register: 0.239 files: 0.198 peripherals: 0.178 assembly: 0.145 i386: 0.141 mistranslation: 0.116 x86: 0.016 aarch-64 emulation much slower since release 8.1.5 (issue also present on 8.2.1) Description of problem: Since QEMU 8.1.5 our aarch64 based emulation got much slower. We use a linux 5.4 kernel which we cross-compile with the ARM toolchain. Things that are noticable: - Boot time got a lot longer - All memory accesses seem to take 3x longer (can be verified by e.g. executing below script, address does not matter): ``` date for i in $(seq 0 1000); do devmem 0x200000000 2>/dev/null done date ``` Steps to reproduce: Just boot an ARM based kernel on the virt machine and execute above script. Additional information: I've tried reproducing the issue on the master branch. There the issue is not present. It only seems to be present on releases 8.1.5 and 8.2.1. I've narrowed the problem down to following commit on the 8.2 branch (@bonzini): ef74024b76bf285e247add8538c11cb3c7399a1a accel/tcg: Revert mapping of PCREL translation block to multiple virtual addresses. Let me know if any other information / tests are required.