Hi Kashyap, Thanks for the reply. >> >> Now for some reason, I need to add “ -qmp tcp:127.0.0.1:1235” when >> creating a KVM VM using libvirt. > > You might need to elaborate how exactly you're doing this. I wanted to add “-qmp tcp:127.0.0.1:1235” when creating VM because I was using a multi-level debugger which needs this option to get more information of the VM kernel debuginfo and the processes running inside the VM besides gdb attach. > >> This command meaning in “qemu-kvm --help” is: -qmp dev like >> -monitor but opens in 'control' mode. > > The above is used if you want to explicitly control a running QEMU > instance via QMP, e.g. manually issue them QMP commands via telnet(1) > for development/testing/debugging. This is exactly what I need - for debugging. Is there a way to achieve this while still using the default monitor libvirt provides? > >> I added command-line equivalent options into the xml file, like below >> format: >> >> <qemu:commandline> <qemu:arg value="-s"/> <qemu:arg value="-qmp"/> >> <qemu:arg value="tcp:127.0.0.1:1235"/> </qemu:commandline> > > In guests created in a regular fashion (e.g. virt-install, > virt-manager), this is all handled by libvirt for you via its APIs. > >> However when I create VM using this xml file, I got the error: >> >> # virsh create instance-libvirt.xml error: Failed to create domain >> from instance-libvirt.xml error: internal error process exited while >> connecting to monitor: qemu-kvm: -qmp tcp:127.0.0.1:1235: Duplicate ID >> 'monitor' for mon duplicate chardev: monitor >> >> The VM I created, without “—qmp” option, has below options showing in >> “ps aux | grep qemu-kvm”: >> >> -chardev >> socket,id=charmonitor,path=/var/lib/libvirt/qemu/vmifs_test.monitor,server,nowait >> -mon chardev=charmonitor,id=monitor,mode=control >> >> Looks like libvirt automatically adds the monitor options upon VM >> creation. > > As I understand it, libvirt uses its own APIs to handle interactions > with QEMU monitor console, e.g. qemuMonitorOpen(), etc. > > If you're fine delving into code, you might want to libvirt > sources, specificially this directory: libvirt/src/qemu. Messing up the source code is the last thing I want to do. I am using the default libvirt coming with CentOs6.5, last time I modified and installed the libvirt source code, I got seriously version-not-match problem. > >> Is there a way to disable this and use “—qmp” instead when creating >> VM? > > I doubt libvirt developers will agree with this proposal. But if you're > intending to try QEMU monitor console for testing, here's some old notes > on different ways to access QEMU monitor via QMP: > > http://kashyapc.com/2013/03/31/multiple-ways-to-access-qemu-monitor-protocol-qmp/ I’ve read this and looks like you’re also using command line to create a KVM machine while enabling “—qmp” option. Is there a way to do this but still creating VM through libvirt? Thank you very much for your time! Best Regards, Min On Nov 9, 2014, at 11:34 AM, Kashyap Chamarthy <kchamart@xxxxxxxxxx> wrote: > On Fri, Nov 07, 2014 at 03:28:57PM -0700, Min Du wrote: >> Hi, >> >> Now for some reason, I need to add “ -qmp tcp:127.0.0.1:1235” when >> creating a KVM VM using libvirt. > > You might need to elaborate how exactly you're doing this. > >> This command meaning in “qemu-kvm --help” is: -qmp dev like >> -monitor but opens in 'control' mode. > > The above is used if you want to explicitly control a running QEMU > instance via QMP, e.g. manually issue them QMP commands via telnet(1) > for development/testing/debugging. > >> I added command-line equivalent options into the xml file, like below >> format: >> >> <qemu:commandline> <qemu:arg value="-s"/> <qemu:arg value="-qmp"/> >> <qemu:arg value="tcp:127.0.0.1:1235"/> </qemu:commandline> > > In guests created in a regular fashion (e.g. virt-install, > virt-manager), this is all handled by libvirt for you via its APIs. > >> However when I create VM using this xml file, I got the error: >> >> # virsh create instance-libvirt.xml error: Failed to create domain >> from instance-libvirt.xml error: internal error process exited while >> connecting to monitor: qemu-kvm: -qmp tcp:127.0.0.1:1235: Duplicate ID >> 'monitor' for mon duplicate chardev: monitor >> >> The VM I created, without “—qmp” option, has below options showing in >> “ps aux | grep qemu-kvm”: >> >> -chardev >> socket,id=charmonitor,path=/var/lib/libvirt/qemu/vmifs_test.monitor,server,nowait >> -mon chardev=charmonitor,id=monitor,mode=control >> >> Looks like libvirt automatically adds the monitor options upon VM >> creation. > > As I understand it, libvirt uses its own APIs to handle interactions > with QEMU monitor console, e.g. qemuMonitorOpen(), etc. > > If you're fine delving into code, you might want to libvirt > sources, specificially this directory: libvirt/src/qemu. > >> Is there a way to disable this and use “—qmp” instead when creating >> VM? > > I doubt libvirt developers will agree with this proposal. But if you're > intending to try QEMU monitor console for testing, here's some old notes > on different ways to access QEMU monitor via QMP: > > http://kashyapc.com/2013/03/31/multiple-ways-to-access-qemu-monitor-protocol-qmp/ > > -- > /kashyap _______________________________________________ libvirt-users mailing list libvirt-users@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvirt-users