[libvirt] [PATCH] qemu: The ppc64 target can run both ppc64 and ppc64le guests
Daniel P. Berrange
berrange at redhat.com
Tue Sep 15 12:48:44 UTC 2015
On Tue, Sep 15, 2015 at 01:53:52PM +0200, Andrea Bolognani wrote:
> When looking for a QEMU binary suitable for running ppc64le guests
> we have to take into account the fact that we use the QEMU target
> as key for the hash, so direct comparison is not good enough:
> normalize everything that can run on the ppc64 target to
> VIR_ARCH_PPC64 instead.
>
> This approach was already used in virQEMUCapsFindBinaryForArch(),
> and I've added a comment there to clarify why it's needed.
>
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1260753
> ---
> src/qemu/qemu_capabilities.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 4ad1bdb..a06141e 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -699,6 +699,7 @@ virQEMUCapsFindBinaryForArch(virArch hostarch,
> const char *archstr;
> char *binary;
>
> + /* qemu-system-ppc64 can run both ppc64 and ppc64le guests */
> if (ARCH_IS_PPC64(guestarch))
> archstr = virQEMUCapsArchToString(VIR_ARCH_PPC64);
> else
> @@ -3791,6 +3792,10 @@ virQEMUCapsCacheLookupByArch(virQEMUCapsCachePtr cache,
> virQEMUCapsPtr ret = NULL;
> struct virQEMUCapsSearchData data = { .arch = arch };
>
> + /* QEMU's ppc64 target can run both ppc64 and ppc64le guests */
> + if (ARCH_IS_PPC64(data.arch))
> + data.arch = VIR_ARCH_PPC64;
> +
> virMutexLock(&cache->lock);
> ret = virHashSearch(cache->binaries, virQEMUCapsCompareArch, &data);
> VIR_DEBUG("Returning caps %p for arch %s", ret, virArchToString(arch));
The virQEMUCapsFindBinaryForArch metho already has a bunch of logic to
deal with fact that one binary can support multiple different
architectures. For example, x86_64 can support i686. It looks like we
hit the same problem as ppc64/ppc64le in that case and you have not
handled it here. It would be desirable to avoid having to have the same
compat logic in two places too.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list