i386: 0.888 performance: 0.865 graphic: 0.792 TCG: 0.787 kernel: 0.749 device: 0.661 files: 0.653 ppc: 0.637 architecture: 0.596 semantic: 0.590 debug: 0.582 x86: 0.469 socket: 0.443 register: 0.437 vnc: 0.425 PID: 0.410 user-level: 0.384 network: 0.381 hypervisor: 0.361 arm: 0.306 risc-v: 0.282 boot: 0.229 virtual: 0.213 permissions: 0.207 assembly: 0.138 VMM: 0.135 peripherals: 0.127 KVM: 0.070 mistranslation: 0.043 Regression 10.0.0rc1: Segmentation fault on executing QEMU advent calendar 2014, day 4 Description of problem: On executing QEMU, a segmentation fault occurs Steps to reproduce: 1. Download https://www.qemu-advent-calendar.org/2014/download/stxmas.tar.xz 2. Execute with QEMU command line Additional information: git bisect finishes with: ``` 456709db50f424d112bc5f07260fdc51555f3a24 is the first bad commit commit 456709db50f424d112bc5f07260fdc51555f3a24 Author: Paolo Bonzini Date: Sun Dec 15 10:06:10 2024 +0100 target/i386: execute multiple REP/REPZ iterations without leaving TB Use a TCG loop so that it is not necessary to go through the setup steps of REP and through the I/O check on every iteration. Interestingly, this is not a particularly effective optimization on its own, though it avoids the cost of correct RF emulation that was added in the previous patch. The main benefit lies in allowing the hoisting of loop invariants outside the loop, which will happen separately. The loop exits when the low 16 bits of CX/ECX/RCX are zero (so generally speaking the string operation runs in 65536 iteration batches) to give the main loop an opportunity to pick up interrupts. Signed-off-by: Paolo Bonzini Reviewed-by: Richard Henderson Link: https://lore.kernel.org/r/20241215090613.89588-12-pbonzini@redhat.com Signed-off-by: Paolo Bonzini target/i386/tcg/translate.c | 55 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 49 insertions(+), 6 deletions(-) ```