Hi all,
I've been looking at trying to fix some outstanding OpenBIOS bug reports
and come across a serious performance regression with regard to VGA/VNC
updates on qemu-system-ppc. In particular, I've been looking at Any
ideas gratefully received.Any ideas gratefully received.trying to create
patches to enable HelenOS to boot once again under QEMU
(https://bugs.launchpad.net/qemu/+bug/942299).
Having tested these patches on older versions of QEMU without any
problems, I noticed that emulation on git master would grind to a halt
on the main HelenOS terminal screen containing animated graphics.
Further experimentation without any additional patches of my own and my
main Fedora 12 PPC test CD ISO showed that the boot time from yaboot to
installer had risen from 10s to around 17s between old and new versions
of QEMU on my laptop.
Unfortunately due to the memory API causing various breakage for PPC,
it's fairly tricky to determine an exact commit using git bisect.
However I have determined the following:
- Last good commit: 2dd3022826bb1ced27d12493a8f1f4b6d4bc71b7 dated 12th
Aug 2011 (note: this also requires a backport of Any ideas gratefully
received.0ac543de94f4f5e7e79d59a56df60937cdd3cd24 to fix another
performance bug)
- First recognised bad commit (i.e. qemu-system-ppc first boots after
introduction of the new memory API):
6c731dc2af1e80c410e8605098deb1ac16ab72f0 dated 8th Oct 2011
Now I've produced gprof profiles of both the good commit above and from
git master and posted extracts of them on qemu-ppc here:
http://lists.nongnu.org/archive/html/qemu-ppc/2012-03/msg00027.html.
These seem to indicate in recent versions of QEMU the majority of CPU
time is being spent updating the VGA/VNC framebuffer which is why
emulation has slowed down substantially.
Does anyone have an idea as to which commits between 12th Aug and 8th
Oct could be causing these excessive updates? Reproducing my scenario is
extermely easy: download a FC12 ISO from
http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/12/Fedora/ppc/iso/Fedora-12-ppc-netinst.iso
and run like this against the good and bad commits above for comparison:
./qemu-system-ppc -cdrom Fedora-12-ppc-netinst.iso -boot d
Many thanks,
Mark.