qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Re: [libvirt] Supporting hypervisor specific APIs in li


From: Gerd Hoffmann
Subject: Re: [Qemu-devel] Re: [libvirt] Supporting hypervisor specific APIs in libvirt
Date: Tue, 23 Mar 2010 11:25:41 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8) Gecko/20100301 Fedora/3.0.3-1.fc12 Thunderbird/3.0.3

On 03/23/10 09:54, Jes Sorensen wrote:
On 03/22/10 22:53, Anthony Liguori wrote:
On 03/22/2010 04:33 PM, Gerd Hoffmann wrote:
libvirt is very unfriendly to qemu hackers. There is no easy way to
add command line switches. There is no easy way to get access to the
monitor. I can get it done by pointing <emulator> to a wrapper script
and mangle the qemu command line there. But this sucks big time. And
it doesn't integrate with libvirt at all.

It's not just developers. As we're doing deployments of qemu/kvm, we
keep running into the same problem. We realize that we need to use a
feature of qemu/kvm that isn't modelled by libvirt today. I've gone as
far as to temporarily pausing libvirtd, finding the pty fd from
/proc/<pid>, and hijacking the monitor session temporarily.

One problem I have found, and I am not sure how to fix this in this
context. Sometimes when hacking on qemu, I want to try out a new
qemu binary on an existing image, without replacing the system wide
one and may want to pass new command line flags for testing those, plus
have access to the monitor.

Works with the wrapper script trick mentioned above.

virsh edit $domain
grep for <emulator>
make it point to a wrapper script.

My setup:

address@hidden ~]# virsh dumpxml fedora | grep emulator
    <emulator>/root/bin/qemu-wrapper</emulator>
address@hidden ~]# cat /root/bin/qemu-wrapper
#!/bin/sh

# distro qemu-kvm
REAL_QEMU="/usr/bin/qemu-kvm"
MORE_ARGS="-boot menu=on -cpu host -enable-nesting"

# fresh build
#REAL_QEMU="/home/kraxel/git/kvm/x86_64-softmmu/qemu-system-x86_64"
#MORE_ARGS="-L /home/kraxel/git/kvm/pc-bios -boot menu=on"

# go!
case "$1" in
        "" | -h | -help | --help)
                # libvirt capability check
                exec $REAL_QEMU $1
                ;;
        *)
                # run qemu with additional args
                exec $REAL_QEMU "$@" $MORE_ARGS
                ;;
esac

# should never ever arrive here
echo "$0: exec $REAL_QEMU failed" >&2
exit 1

HTH,
  Gerd




reply via email to

[Prev in Thread] Current Thread [Next in Thread]