From: Eric Blake <eblake@redhat.com>
To: Yang Hongyang <yanghy@cn.fujitsu.com>, qemu-devel@nongnu.org
Cc: GuiJianfeng@cn.fujitsu.com, mrhines@linux.vnet.ibm.com,
eddie.dong@intel.com, dgilbert@redhat.com, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [RFC PATCH 07/17] COLO buffer: implement colo buffer as well as QEMUFileOps based on it
Date: Wed, 23 Jul 2014 12:24:51 -0600 [thread overview]
Message-ID: <53CFFDF3.4010200@redhat.com> (raw)
In-Reply-To: <1406125538-27992-8-git-send-email-yanghy@cn.fujitsu.com>
[-- Attachment #1: Type: text/plain, Size: 2225 bytes --]
On 07/23/2014 08:25 AM, Yang Hongyang wrote:
> We need a buffer to store migration data.
>
> On save side:
> all saved data was write into colo buffer first, so that we can know
s/was write/is written/
> the total size of the migration data. this can also separate the data
> transmission from colo control data, we use colo control data over
> socket fd to synchronous both side's stat.
>
> On restore side:
> all migration data was read into colo buffer first, then load data
> from the buffer: If network error happens while data transmission,
s/while/during/
> the slaver can still functinal because the migration data are not yet
s/slaver/slave/
s/functinal/function/
s/are/is/
> loaded.
>
> Signed-off-by: Yang Hongyang <yanghy@cn.fujitsu.com>
> ---
> migration-colo.c | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 112 insertions(+)
>
> +/* colo buffer */
> +
> +#define COLO_BUFFER_BASE_SIZE (1000*1000*4ULL)
> +#define COLO_BUFFER_MAX_SIZE (1000*1000*1000*10ULL)
Spaces around binary operators.
> +
> +typedef struct colo_buffer {
For consistency with the rest of the code base, name this ColoBuffer,
not colo_buffer.
> + uint8_t *data;
> + uint64_t used;
> + uint64_t freed;
> + uint64_t size;
> +} colo_buffer_t;
HACKING says to NOT name types with a trailing _t. Just name the
typedef ColoBuffer.
> +static void colo_buffer_destroy(void)
> +{
> + if (colo_buffer.data) {
> + g_free(colo_buffer.data);
> + colo_buffer.data = NULL;
g_free(NULL) behaves sanely, just make these two lines unconditional.
> +static void colo_buffer_extend(uint64_t len)
> +{
> + if (len > colo_buffer.size - colo_buffer.used) {
> + len = len + colo_buffer.used - colo_buffer.size;
> + len = ROUND_UP(len, COLO_BUFFER_BASE_SIZE) + COLO_BUFFER_BASE_SIZE;
> +
> + colo_buffer.size += len;
> + if (colo_buffer.size > COLO_BUFFER_MAX_SIZE) {
> + error_report("colo_buffer overflow!\n");
No trailing \n in error_report().
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
next prev parent reply other threads:[~2014-07-23 18:25 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-23 14:25 [Qemu-devel] [RFC PATCH 00/17] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service Yang Hongyang
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 01/17] configure: add CONFIG_COLO to switch COLO support Yang Hongyang
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 02/17] COLO: introduce an api colo_supported() to indicate " Yang Hongyang
2014-07-23 15:47 ` Eric Blake
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 03/17] COLO migration: add a migration capability 'colo' Yang Hongyang
2014-07-23 14:41 ` Eric Blake
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 04/17] COLO info: use colo info to tell migration target colo is enabled Yang Hongyang
2014-08-01 14:43 ` Dr. David Alan Gilbert
2014-09-12 6:36 ` Hongyang Yang
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 05/17] COLO save: integrate COLO checkpointed save into qemu migration Yang Hongyang
2014-08-01 14:46 ` Dr. David Alan Gilbert
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 06/17] COLO restore: integrate COLO checkpointed restore into qemu restore Yang Hongyang
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 07/17] COLO buffer: implement colo buffer as well as QEMUFileOps based on it Yang Hongyang
2014-07-23 18:24 ` Eric Blake [this message]
2014-08-01 14:52 ` Dr. David Alan Gilbert
2014-09-17 1:43 ` Hongyang Yang
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 08/17] COLO: disable qdev hotplug Yang Hongyang
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 09/17] COLO ctl: implement API's that communicate with colo agent Yang Hongyang
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 10/17] COLO ctl: introduce is_slave() and is_master() Yang Hongyang
2014-08-01 14:55 ` Dr. David Alan Gilbert
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 11/17] COLO ctl: implement colo checkpoint protocol Yang Hongyang
2014-08-01 15:03 ` Dr. David Alan Gilbert
2014-09-12 6:20 ` Hongyang Yang
2014-09-12 11:17 ` Dr. David Alan Gilbert
2014-09-12 11:40 ` Hongyang Yang
2014-09-12 11:57 ` Dr. David Alan Gilbert
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 12/17] COLO ctl: add a RunState RUN_STATE_COLO Yang Hongyang
2014-07-23 15:48 ` Eric Blake
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 13/17] COLO ctl: implement colo save Yang Hongyang
2014-08-01 15:07 ` Dr. David Alan Gilbert
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 14/17] COLO ctl: implement colo restore Yang Hongyang
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 15/17] COLO save: reuse migration bitmap under colo checkpoint Yang Hongyang
2014-08-01 15:09 ` Dr. David Alan Gilbert
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 16/17] COLO ram cache: implement colo ram cache on slaver Yang Hongyang
2014-08-01 15:10 ` Dr. David Alan Gilbert
2014-09-12 6:30 ` Hongyang Yang
2014-07-23 14:25 ` [Qemu-devel] [RFC PATCH 17/17] HACK: trigger checkpoint every 500ms Yang Hongyang
2014-07-23 15:44 ` [Qemu-devel] [RFC PATCH 00/17] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service Eric Blake
2014-07-24 2:24 ` Hongyang Yang
2014-08-01 16:02 ` Dr. David Alan Gilbert
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=53CFFDF3.4010200@redhat.com \
--to=eblake@redhat.com \
--cc=GuiJianfeng@cn.fujitsu.com \
--cc=dgilbert@redhat.com \
--cc=eddie.dong@intel.com \
--cc=kvm@vger.kernel.org \
--cc=mrhines@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=yanghy@cn.fujitsu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).