On 24.11.2011, at 23:02, Christoffer Dall wrote:

On Thu, Nov 24, 2011 at 4:27 PM, Peter Maydell <peter.maydell@linaro.org> wrote:
On 24 November 2011 20:11, Christoffer Dall <cdall@cs.columbia.edu> wrote:


[...]

I would like some clarity (if possible) of which branch the KVM
support for ARM should be based on. Is it the Linaro version of QEMU
and basically just keep rebasing the changes off there until someone
accepts them or?

What would be helpful from the point of view of KVM is to have basic
ARM host support and the A15 system model upstream.

My plan here was that the bits like A15 system model which are
clearly upstreamable I would push directly upstream (and just keep
in qemu-linaro for the typically week-or-three things take to
go through upstream patch review). For the KVM support patch itself,
my thought was simply to carry that in qemu-linaro as an "unsupported
work in progress" patch until we think it's ready to commit upstream.
[I'm suggesting qemu-linaro here mostly because it's convenient to
me: it's a tree I already maintain and track upstream trunk with.
If that would be awkward for other people we can do something else.]

Pretty high up my todo list was rebasing your kvm patch on to
master / qemu-linaro (the two are more or less the same for this
purpose).


if you could take charge on that it would be awesome from my point of
view. I will send you a (slightly) cleaned up patch that you can use
or throw away.

Please make sure that once there is upstream code in the kernel to actually implement A15 KVM, there should also be the patches ready for QEMU upstream inclusion, as that's the point where the ABI is stable :).


Currently there are a number of changes to the configure script to
make things work and we link against a prebuilt zlib library that we
keep distributing to people who wish to build QEMU for KVM/ARM.

I have some instructions for Ubuntu oneiric hosts that work by
using the stock oneiric ARM zlib (installed via dpkg-cross):
see the section at the bottom of
https://wiki.linaro.org/PeterMaydell/A15OnFastModels
(that's "how to cross build upstream qemu master", not your qemu
with the kvm patch.)

You'll find that when we update to QEMU 1.0 you'll also need a
cross version of the glib/gthread libraries, which may make you
more reluctant to stick to the "hand out prebuilt cross library"
approach.

I'm already reluctant, so I'm happy to hear there will be some
"official" instructions available. I actually think it's important for
the adoption of KVM that things are somewhat possible to build without
too much jumping through hoops. A remaining item is to test this setup
with the KVM stuff, but it should be a minor thing as long as the
kernel headers for KVM/ARM can be integrated with the build process
somehow. (Or is there an alternative?).

The kernel headers now all reside inside the QEMU tree, so you just sync them up to Linux's headers using a script and then have them around. That way building against KVM should be trivial :).


Alex