diff options
Diffstat (limited to 'results/classifier/118/performance/1672383')
| -rw-r--r-- | results/classifier/118/performance/1672383 | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/results/classifier/118/performance/1672383 b/results/classifier/118/performance/1672383 new file mode 100644 index 000000000..f250e20cc --- /dev/null +++ b/results/classifier/118/performance/1672383 @@ -0,0 +1,53 @@ +performance: 0.933 +device: 0.519 +PID: 0.517 +x86: 0.489 +ppc: 0.473 +architecture: 0.468 +boot: 0.462 +i386: 0.438 +vnc: 0.421 +graphic: 0.395 +socket: 0.387 +files: 0.385 +network: 0.375 +user-level: 0.363 +peripherals: 0.337 +hypervisor: 0.337 +kernel: 0.331 +TCG: 0.327 +permissions: 0.306 +VMM: 0.285 +semantic: 0.281 +arm: 0.255 +risc-v: 0.254 +register: 0.211 +debug: 0.196 +mistranslation: 0.141 +virtual: 0.135 +assembly: 0.102 +KVM: 0.009 + +Slow Windows XP load after commit a9353fe897ca2687e5b3385ed39e3db3927a90e0 + +I've recently discovered, that in QEMU 2.8+ my Windows XP loading time has significantly worsened. In 2.7 it took 30-40 second to boot, but in 2.8 it became 2-2,5 minutes. + +I've used Git bisect, and found out that the change happened after commit a9353fe897ca2687e5b3385ed39e3db3927a90e0, which, as far as I can tell from the commit message, handled race condition when invalidating breakpoint. + +I've set a breakpoint in static void breakpoint_invalidate(CPUState *cpu, target_ulong pc), and here's a backtrace: +#0 cpu_breakpoint_insert (cpu=cpu@entry=0x555556a73be0, pc=144, + flags=flags@entry=32, breakpoint=breakpoint@entry=0x555556a7c670) + at /media/sdd2/qemu-work/exec.c:830 +#1 0x00005555558746ac in hw_breakpoint_insert (env=env@entry=0x555556a7be60, + index=index@entry=0) at /media/sdd2/qemu-work/target-i386/bpt_helper.c:64 +#2 0x00005555558748ed in cpu_x86_update_dr7 (env=0x555556a7be60, + new_dr7=<optimised out>) + at /media/sdd2/qemu-work/target-i386/bpt_helper.c:160 +#3 0x00007fffa17421f6 in code_gen_buffer () +#4 0x000055555577fcb4 in cpu_tb_exec (itb=<optimised out>, + itb=<optimised out>, cpu=0x7fff8b7763b0) + at /media/sdd2/qemu-work/cpu-exec.c:164 +It seems that XP sets some breakpoints during it's load, and it leads to frequent TB flushes and slow execution. + +Supposedly fixed by commit 406bc339b0505fcfc2ffcbca1f05a3756e338a65 + |