qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert (git)" <dgilbert@redhat.com>
To: qemu-devel@nongnu.org, quintela@redhat.com, peterx@redhat.com,
	ehabkost@redhat.com, richardw.yang@linux.intel.com,
	yury-kotov@yandex-team.ru, chen.zhang@intel.com
Subject: [Qemu-devel] [PULL 01/16] migration: comment VMSTATE_UNUSED*() properly
Date: Tue, 14 May 2019 19:34:39 +0100	[thread overview]
Message-ID: <20190514183454.12758-2-dgilbert@redhat.com> (raw)
In-Reply-To: <20190514183454.12758-1-dgilbert@redhat.com>

From: Peter Xu <peterx@redhat.com>

It is error prone to use VMSTATE_UNUSED*() sometimes especially when
the size of the migration stream of the field is not the same as the
size of the structure (boolean is one example).  Comment it well so
people will be aware of this when people want to use it.

Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20190329095713.14177-1-peterx@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
 include/migration/vmstate.h | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
index a668ec75b8..9224370ed5 100644
--- a/include/migration/vmstate.h
+++ b/include/migration/vmstate.h
@@ -1035,6 +1035,20 @@ extern const VMStateInfo vmstate_info_qtailq;
 #define VMSTATE_BUFFER_UNSAFE(_field, _state, _version, _size)        \
     VMSTATE_BUFFER_UNSAFE_INFO(_field, _state, _version, vmstate_info_buffer, _size)
 
+/*
+ * These VMSTATE_UNUSED*() macros can be used to fill in the holes
+ * when some of the vmstate fields are obsolete to be compatible with
+ * migrations between new/old binaries.
+ *
+ * CAUTION: when using any of the VMSTATE_UNUSED*() macros please be
+ * sure that the size passed in is the size that was actually *sent*
+ * rather than the size of the *structure*.  One example is the
+ * boolean type - the size of the structure can vary depending on the
+ * definition of boolean, however the size we actually sent is always
+ * 1 byte (please refer to implementation of VMSTATE_BOOL_V and
+ * vmstate_info_bool).  So here we should always pass in size==1
+ * rather than size==sizeof(bool).
+ */
 #define VMSTATE_UNUSED_V(_v, _size)                                   \
     VMSTATE_UNUSED_BUFFER(NULL, _v, _size)
 
-- 
2.21.0



  reply	other threads:[~2019-05-14 18:36 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-14 18:34 [Qemu-devel] [PULL 00/16] migration queue Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` Dr. David Alan Gilbert (git) [this message]
2019-05-14 18:34 ` [Qemu-devel] [PULL 02/16] migration: not necessary to check ops again Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` [Qemu-devel] [PULL 03/16] migration: remove not used field xfer_limit Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` [Qemu-devel] [PULL 04/16] vmstate: check subsection_found is enough Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` [Qemu-devel] [PULL 05/16] migration: savevm: fix error code with migration blockers Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` [Qemu-devel] [PULL 06/16] migration/colo.c: Remove redundant input parameter Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` [Qemu-devel] [PULL 07/16] migration/colo.h: Remove obsolete codes Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` [Qemu-devel] [PULL 08/16] qemu-option.hx: Update missed parameter for colo-compare Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` [Qemu-devel] [PULL 09/16] migration/ram.c: start of migration_bitmap_sync_range is always 0 Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` [Qemu-devel] [PULL 10/16] migration: update comments of migration bitmap Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` [Qemu-devel] [PULL 11/16] migration/savevm: remove duplicate check of migration_is_blocked Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` [Qemu-devel] [PULL 12/16] migration/savevm: load_header before load_setup Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` [Qemu-devel] [PULL 13/16] migration/savevm: wrap into qemu_loadvm_state_header() Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` [Qemu-devel] [PULL 14/16] migration: Fix use-after-free during process exit Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` [Qemu-devel] [PULL 15/16] migration/ram.c: fix typos in comments Dr. David Alan Gilbert (git)
2019-05-14 18:34 ` [Qemu-devel] [PULL 16/16] monitor: Call mon_get_cpu() only once at hmp_gva2gpa() Dr. David Alan Gilbert (git)
2019-05-16 11:54 ` [Qemu-devel] [PULL 00/16] migration queue Peter Maydell

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=20190514183454.12758-2-dgilbert@redhat.com \
    --to=dgilbert@redhat.com \
    --cc=chen.zhang@intel.com \
    --cc=ehabkost@redhat.com \
    --cc=peterx@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=richardw.yang@linux.intel.com \
    --cc=yury-kotov@yandex-team.ru \
    /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).