|
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
[Prev in Thread] | Current Thread | [Next in Thread] |