From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: qemu-devel@nongnu.org
Cc: Juan Quintela <quintela@redhat.com>,
qemu-ppc@nongnu.org, Alexander Graf <agraf@suse.de>,
David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [Qemu-devel] [PATCH 1/2] vmstate: Allow dynamic allocation for VBUFFER during migration
Date: Fri, 03 Oct 2014 09:42:28 +1000 [thread overview]
Message-ID: <542DE2E4.5040107@ozlabs.ru> (raw)
In-Reply-To: <1412243763-32431-2-git-send-email-aik@ozlabs.ru>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 10/02/2014 07:56 PM, Alexey Kardashevskiy wrote:
> This extends use of VMS_ALLOC flag from arrays to VBUFFER as well.
>
> This defines VMSTATE_VBUFFER_ALLOC_UINT32 which makes use of
> VMS_ALLOC and uses uint32_t type for a size.
Adding Juan to cc:. Please, ack :)
>
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> ---
> include/migration/vmstate.h | 11 +++++++++++ vmstate.c
> | 13 ++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-)
>
> diff --git a/include/migration/vmstate.h
> b/include/migration/vmstate.h index 9a001bd..e45fc49 100644 ---
> a/include/migration/vmstate.h +++ b/include/migration/vmstate.h @@
> -484,6 +484,17 @@ extern const VMStateInfo vmstate_info_bitmap; .start
> = (_start), \ }
>
> +#define VMSTATE_VBUFFER_ALLOC_UINT32(_field, _state, _version, _test,
> _start, _field_size) { \ + .name = (stringify(_field)),
> \ + .version_id = (_version),
> \ + .field_exists = (_test),
> \ + .size_offset = vmstate_offset_value(_state, _field_size,
> uint32_t),\ + .info = &vmstate_info_buffer,
> \ + .flags = VMS_VBUFFER|VMS_POINTER|VMS_ALLOC,
> \ + .offset = offsetof(_state, _field),
> \ + .start = (_start),
> \ +} + #define VMSTATE_BUFFER_UNSAFE_INFO(_field, _state, _version,
> _info, _size) { \ .name = (stringify(_field)),
> \ .version_id = (_version), \
> diff --git a/vmstate.c b/vmstate.c index ef2f87b..3dde574 100644 ---
> a/vmstate.c +++ b/vmstate.c @@ -49,9 +49,16 @@ static void
> *vmstate_base_addr(void *opaque, VMStateField *field, bool alloc)
>
> if (field->flags & VMS_POINTER) { if (alloc && (field->flags &
> VMS_ALLOC)) { - int n_elems = vmstate_n_elems(opaque,
> field); - if (n_elems) { - gsize size =
> n_elems * field->size; + gsize size = 0; + if
> (field->flags & VMS_VBUFFER) { + size =
> vmstate_size(opaque, field); + } else { +
> int n_elems = vmstate_n_elems(opaque, field); + if
> (n_elems) { + size = n_elems * field->size; +
> } + } + if (size) { *((void **)base_addr +
> field->start) = g_malloc(size); } }
>
- --
Alexey
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAEBAgAGBQJULeLkAAoJEIYTPdgrwSC5r2UP/RSiuKEanpXfhwyhudAB1nGM
9t3NJxrLO5PhkhfIveGgcf/t3hWpGOGu1JiiwpD8//ipjX0nBGt0O8p6Tp6xATtm
2NOid+9F6yUxfhLVB3vGQZ4KocguPt789t37HRgn9oT9YVxsJdeb1ftcDXw+opB7
qM113ZdrOVBPVeH1+vSC0vUwNYokjRQf/kX8IwwFXyJirt9/Rf9FaXf+KuturpJo
lp2yYVhuWmBy+MID5HZNlTfqVU5iMmX6ngqVm7rkaFxRA/3Ywlj1OtYGyf9htgya
OauFrvwUlM4yh3CiqLqu12Jabadu1Oa8yIeY9r2O5A4JLZt9JS2n3vxM70H8Z67Z
XJpQDF2Il26w9jIlmJ10GvVFt7sBaV0Yzu9SfgzNdSO/zteaODulOLj3eciUwnDk
DxbFvf8zn1vCuFjIwq3lqPaH1mNHEnLnV+6XlJLYNrD9Vngcc2UN/hXRMKwWovdL
rJAtOCObDB8VlilqS5/sFCekZsQasAnY7NckQvrx+0V/I7BJ99I7kKGcNIZF8pAU
84XHrw8j80+jh5W+6byn8M0lKgd7dn11KXcXzE1nuIVAP9KxG7Br5od3zePqhiIl
mdJ9meR3aOfNAr6N9iW/El+2g3FvhH3TQaZ+R5ZJMGCTVt9tqIVf1XLuXVbjdV3X
/xd/ACb10y32PH2sIEhl
=tSNm
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2014-10-02 23:42 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-02 9:56 [Qemu-devel] [PATCH 0/2] Here are 2 patches to enable sPAPR NVRAM migration Alexey Kardashevskiy
2014-10-02 9:56 ` [Qemu-devel] [PATCH 1/2] vmstate: Allow dynamic allocation for VBUFFER during migration Alexey Kardashevskiy
2014-10-02 23:42 ` Alexey Kardashevskiy [this message]
2014-10-09 5:20 ` Alexey Kardashevskiy
2014-10-03 4:08 ` David Gibson
2014-10-14 7:32 ` Juan Quintela
2014-10-02 9:56 ` [Qemu-devel] [PATCH 2/2] spapr_nvram: Enable migration Alexey Kardashevskiy
2014-10-03 4:11 ` David Gibson
2014-10-02 10:58 ` [Qemu-devel] [PATCH 0/2] Here are 2 patches to enable sPAPR NVRAM migration Alexander Graf
2014-10-15 7:21 ` Alexander Graf
-- strict thread matches above, loose matches on Subject: below --
2014-09-25 7:02 [Qemu-devel] [PATCH 0/2] spapr_nvram: Support migration Alexey Kardashevskiy
2014-09-25 7:02 ` [Qemu-devel] [PATCH 1/2] vmstate: Allow dynamic allocation for VBUFFER during migration Alexey Kardashevskiy
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=542DE2E4.5040107@ozlabs.ru \
--to=aik@ozlabs.ru \
--cc=agraf@suse.de \
--cc=david@gibson.dropbear.id.au \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=quintela@redhat.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.