Friday, May 18, 2012

What to look forward to in QEMU 1.1

The forthcoming release of QEMU 1.1 will contain some important improvements and fixes over the previous versions that I am quite excited about:

  • If nothing goes wrong, it will be possible to use the QEMU 1.1 binary to emulate HelenOS/ppc32 again. Previously, we had to fallback to using older versions of QEMU (as old as 0.11.1)  or at least a combination of slightly newer QEMU and an OpenBIOS from QEMU 0.11.1. Needless to say, this was very uncomfortable. These are the related bugs and tickets: #407, 942299.
  • Artyom implemented handling of sun4u OBIO interrupts in QEMU, which opens the door for HelenOS/sparc64 to become really useful with QEMU... If only HelenOS and QEMU could agree on the supported primary input/output device. QEMU at the moment assumes serial console while HelenOS assumes keyboard and monitor. This could be, however, worked out by both parties.
So will QEMU 1.1 become the so-far-best universal QEMU for running HelenOS? Well, this depends on whether the final binary will contain a fix for the recently introduced regression in HelenOS/sparc64 emulation. The new QEMU certainly contains more improvements that I am not aware of and I am confident it will be a good release. The good thing is that the QEMU and OpenBIOS developers seem to be using HelenOS, among others, for regression testing to make sure something doesn't unexpectedly break. And if something breaks, they usually know about it in advance :-)

When I am at it, I thought I would put together a list of things that are important for the future alignment of QEMU as the main virtual platform for HelenOS (and vice versa). I'd like to see the following developments to take place eventually:
  • HelenOS should be able to detect and use the serial console on sparc64 machines.
  • HelenOS should be ported to a QEMU-emulated mips32 machine. (#417)
  • HelenOS should start implementing missing device drivers for real devices emulated by QEMU.
  • HelenOS should start using QEMU for continuous integration and regression testing on as many platforms as possible. (roughly #428)
  • QEMU should be able to emulate keyboard and monitor on sparc64 machines.
  • QEMU should be usable for emulating a sun4v machine.
  • QEMU should merge BeagleBoard support from Linaro.
  • QEMU should revive and merge support for OpenMoko FreeRunner phone.
  • QEMU should implement ia64-softmmu. (917645)
As for the last item, I think I am ready to participate in a bounty for having this merged into QEMU git. Any takers?