From: Osier Yang <jyang@redhat.com>
To: "Daniel P. Berrange" <berrange@redhat.com>
Cc: libvir-list@redhat.com, kvm@vger.kernel.org,
penberg@cs.helsinki.fi, levinsasha928@gmail.com,
gorcunov@gmail.com, mingo@elte.hu, asias.hejun@gmail.com
Subject: Re: [libvirt] [PATCH 7/7] kvmtool: Implementation for kvm tool driver
Date: Fri, 09 Dec 2011 15:30:57 +0800 [thread overview]
Message-ID: <4EE1B931.9080809@redhat.com> (raw)
In-Reply-To: <20111206145538.GG7937@redhat.com>
On 2011年12月06日 22:55, Daniel P. Berrange wrote:
> On Fri, Nov 11, 2011 at 07:57:06PM +0800, Osier Yang wrote:
>> Basically, the drivers is implemented by using kvm tool binary
>> currently, (see ./kvm help for more info).
>>
>> Current implementation supports define/undefine, start/destroy/,
>> suspend/resume, connect to guest console via "virsh console",
>> and balloon memory with with "virsh setmem" (using ./kvm balloon
>> command). Also as it supports cgroup controllers "cpuacct", and
>> "memory", so some other commands like "schedinfo", "memtune" can
>> also work. Some other commands such as "domid", "domname", "dumpxml"
>> ,"autostart", etc. are supported, as the driver is designed
>> as a "stateful" driver, those APIs just need to talk with libvirtd
>> simply.
>>
>> As Native Linux KVM Tool is designed for both non-root and root users,
>> the driver is designed just like QEMU, supports two modes of the
>> connection:
>>
>> kvmtool:///system
>> kvmtool+unix:///system
>>
>> kvmtool:///session
>> kvmtool+unix:///session
>>
>> An example of the domain XML (all the XMLs supported currently are
>> listed):
>>
>> % virsh -c kvm:///system dumpxml kvm_test
>> <domain type='kvmtool'>
>> <name>kvm_test</name>
>> <uuid>88bf38f1-b6ab-cfa6-ab53-4b4c0993d894</uuid>
>> <memory>524288</memory>
>> <currentMemory>524288</currentMemory>
>> <vcpu>1</vcpu>
>> <os>
>> <type arch='x86_64'>hvm</type>
>> <kernel>/boot/bzImage</kernel>
>> <boot dev='hd'/>
>> </os>
>> <clock offset='utc'/>
>> <on_poweroff>destroy</on_poweroff>
>> <on_reboot>restart</on_reboot>
>> <on_crash>restart</on_crash>
>> <devices>
>> <emulator>/usr/bin/kvmtool</emulator>
>> <disk type='file' device='disk'>
>> <source file='/var/lib/libvirt/images/linux-0.2.img'/>
>> <target dev='vda' bus='virtio'/>
>> </disk>
>> <filesystem type='mount' accessmode='passthrough'>
>> <source dir='/tmp'/>
>> <target dir='/mnt'/>
>> </filesystem>
>> <console type='pty'>
>> <target type='serial' port='0'/>
>> </console>
>> <memballoon model='virtio'/>
>> </devices>
>> </domain>
>> ---
>> cfg.mk | 1 +
>> daemon/Makefile.am | 4 +
>> daemon/libvirtd.c | 7 +
>> po/POTFILES.in | 2 +
>> src/Makefile.am | 36 +-
>> src/kvmtool/kvmtool_conf.c | 130 ++
>> src/kvmtool/kvmtool_conf.h | 66 +
>> src/kvmtool/kvmtool_driver.c | 3079 ++++++++++++++++++++++++++++++++++++++++++
>> src/kvmtool/kvmtool_driver.h | 29 +
>
> My main suggestion here would be to split up the kvmtool_driver.c
> file into 3 parts as we did with the QEMU driver.
>
> kvmtool_driver.c -> Basic libvirt API glue
> kvmtool_command.c -> ARGV generation
> kvmtool_process.c -> KVMtool process start/stop/autostart/autodestroy
>
Agreed. As a early thinking, kvmtool might has APIs exposed in future,
how should we plan for it? A new driver just like libxl for XEN? or new
backend driver like what we do for xm, xend for XEN driver? Should we
consider the expansibility currently if we tend to use backend
drivers?
Regards,
Osier
next prev parent reply other threads:[~2011-12-09 7:31 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-11 11:56 [libvirt] (no subject) Osier Yang
2011-11-11 11:30 ` [libvirt] Add driver support for Native Linux KVM Tool Osier Yang
2011-11-11 11:56 ` [libvirt] [PATCH 1/7] kvmtool: Add configure support Osier Yang
2011-11-11 11:57 ` [libvirt] [PATCH] kvm tools: Introduce an ENV variable for the state dir Osier Yang
2011-12-06 14:39 ` Daniel P. Berrange
2011-12-09 7:18 ` Osier Yang
2011-11-11 11:57 ` [libvirt] [PATCH 2/7] kvmtool: Add documents Osier Yang
2011-12-06 14:47 ` Daniel P. Berrange
2011-11-11 11:57 ` [libvirt] [PATCH 3/7] kvmtool: Add new enums and error codes for the driver Osier Yang
2011-12-06 14:47 ` Daniel P. Berrange
2011-11-11 11:57 ` [libvirt] [PATCH 4/7] kvmtool: Add hook support for kvmtool domain Osier Yang
2011-12-06 14:48 ` Daniel P. Berrange
2011-11-11 11:57 ` [libvirt] [PATCH 5/7] kvmtool: Add new domain type Osier Yang
2011-12-06 14:46 ` Daniel P. Berrange
2011-12-09 7:22 ` Osier Yang
2011-11-11 11:57 ` [libvirt] [PATCH 6/7] conf: Set source type of the stub console Osier Yang
2011-11-11 11:57 ` [libvirt] [PATCH 7/7] kvmtool: Implementation for kvm tool driver Osier Yang
2011-12-06 14:55 ` Daniel P. Berrange
2011-12-09 7:30 ` Osier Yang [this message]
2011-12-06 14:38 ` [libvirt] (no subject) Daniel P. Berrange
2011-12-07 6:21 ` Sasha Levin
2011-12-07 9:16 ` Daniel P. Berrange
2011-12-09 12:45 ` Osier Yang
2011-12-09 12:41 ` Osier Yang
2011-12-09 12:30 ` Osier Yang
2011-12-10 17:56 ` Pekka Enberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EE1B931.9080809@redhat.com \
--to=jyang@redhat.com \
--cc=asias.hejun@gmail.com \
--cc=berrange@redhat.com \
--cc=gorcunov@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=levinsasha928@gmail.com \
--cc=libvir-list@redhat.com \
--cc=mingo@elte.hu \
--cc=penberg@cs.helsinki.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.