From: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
To: Stefan Hajnoczi <stefanha@gmail.com>
Cc: kwolf@redhat.com, aliguori@us.ibm.com, quintela@redhat.com,
qemu-devel@nongnu.org, lcapitulino@redhat.com,
pbonzini@redhat.com, dietmar@proxmox.com
Subject: Re: [Qemu-devel] [PATCH V2 07/10] snapshot: qmp use new internal API for external snapshot transaction
Date: Thu, 10 Jan 2013 11:21:22 +0800 [thread overview]
Message-ID: <50EE33B2.4040504@linux.vnet.ibm.com> (raw)
In-Reply-To: <20130109124433.GA391@stefanha-thinkpad.redhat.com>
于 2013-1-9 20:44, Stefan Hajnoczi 写道:
> On Mon, Jan 07, 2013 at 03:28:06PM +0800, Wenchao Xia wrote:
>> This patch switch to internal common API to take group external
>> snapshots from qmp_transaction interface. qmp layer simply does
>> a translation from user input.
>>
>> Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
>> ---
>> blockdev.c | 215 ++++++++++++++++++++++++------------------------------------
>> 1 files changed, 87 insertions(+), 128 deletions(-)
>
> An internal API for snapshots is not necessary. qmp_transaction() is
> already usable both from the monitor and C code.
>
> The QAPI code generator creates structs that can be accessed directly
> from C. qmp_transaction(), BlockdevAction, and BlockdevActionList *is*
> the snapshot API. It just doesn't support internal snapshots yet, which
> is what you are trying to add.
>
> To add internal snapshot support, define a BlockdevInternalSnapshot type
> in qapi-schema.json and add internal snapshot support in
> qmp_transaction().
>
> qmp_transaction() was designed with this in mind from the beginning and
> dispatches based on BlockdevAction->kind.
>
> The patch series will become much smaller while still adding internal
> snapshot support.
>
> Stefan
>
As API, qmp_transaction have following disadvantages:
1) interface is based on string not data type inside qemu, that means
other function calling it result in: bdrv->string->bdrv
2) all capability are forced to be exposed.
3) need structure to record each transaction state, such as
BlkTransactionStates. Extending it is equal to add an internal layer.
Actually I started up by use qmp_transaction as API, but soon
found that work is almost done around BlkTransactionStates, so
added a layer around it clearly.
--
Best Regards
Wenchao Xia
next prev parent reply other threads:[~2013-01-10 3:21 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-07 7:27 [Qemu-devel] [PATCH V2 00/10] snapshot: take block snapshots in unified way Wenchao Xia
2013-01-07 7:27 ` [Qemu-devel] [PATCH V2 01/10] block: export function bdrv_find_snapshot() Wenchao Xia
2013-01-07 7:28 ` [Qemu-devel] [PATCH V2 02/10] block: add function deappend() Wenchao Xia
2013-01-07 7:28 ` [Qemu-devel] [PATCH V2 03/10] error: add function error_set_check() Wenchao Xia
2013-01-07 7:28 ` [Qemu-devel] [PATCH V2 04/10] oslib-win32: add lock for time functions Wenchao Xia
2013-01-07 17:12 ` Stefan Weil
2013-01-08 2:27 ` Wenchao Xia
2013-01-07 7:28 ` Wenchao Xia
2013-01-07 7:28 ` [Qemu-devel] [PATCH V2 05/10] snapshot: design of internal common API to take snapshots Wenchao Xia
2013-01-07 7:28 ` [Qemu-devel] [PATCH V2 06/10] snapshot: implemention " Wenchao Xia
2013-01-07 7:28 ` [Qemu-devel] [PATCH V2 07/10] snapshot: qmp use new internal API for external snapshot transaction Wenchao Xia
2013-01-09 12:44 ` Stefan Hajnoczi
2013-01-10 3:21 ` Wenchao Xia [this message]
2013-01-10 12:41 ` Stefan Hajnoczi
2013-01-11 6:22 ` Wenchao Xia
2013-01-11 9:12 ` Stefan Hajnoczi
2013-01-14 2:56 ` Wenchao Xia
2013-01-14 10:06 ` Stefan Hajnoczi
2013-01-15 7:03 ` Wenchao Xia
2013-03-12 8:30 ` Wenchao Xia
2013-03-12 15:43 ` Stefan Hajnoczi
2013-03-13 1:36 ` Wenchao Xia
2013-03-13 8:42 ` Stefan Hajnoczi
2013-03-13 10:18 ` Kevin Wolf
2013-03-14 5:08 ` Wenchao Xia
2013-03-14 8:22 ` Kevin Wolf
2013-03-18 10:00 ` Wenchao Xia
2013-01-07 7:28 ` [Qemu-devel] [PATCH V2 08/10] snapshot: qmp add internal snapshot transaction interface Wenchao Xia
2013-01-07 7:28 ` [Qemu-devel] [PATCH V2 09/10] snapshot: qmp add blockdev-snapshot-internal-sync interface Wenchao Xia
2013-01-07 7:28 ` [Qemu-devel] [PATCH V2 10/10] snapshot: hmp add internal snapshot support for block device Wenchao Xia
2013-01-09 22:34 ` [Qemu-devel] [PATCH V2 00/10] snapshot: take block snapshots in unified way Eric Blake
2013-01-10 6:01 ` Wenchao Xia
2013-01-11 13:56 ` Luiz Capitulino
2013-01-14 2:09 ` Wenchao Xia
2013-01-14 10:08 ` Stefan Hajnoczi
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=50EE33B2.4040504@linux.vnet.ibm.com \
--to=xiawenc@linux.vnet.ibm.com \
--cc=aliguori@us.ibm.com \
--cc=dietmar@proxmox.com \
--cc=kwolf@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=stefanha@gmail.com \
/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.