All of lore.kernel.org
 help / color / mirror / Atom feed
From: Juan Quintela <quintela@redhat.com>
To: Halil Pasic <pasic@linux.vnet.ibm.com>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>,
	qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 4/7] s390x/css: add missing css state conditionally
Date: Wed, 31 May 2017 20:52:29 +0200	[thread overview]
Message-ID: <87a85sc102.fsf@secure.mitica> (raw)
In-Reply-To: <20170529135520.101429-5-pasic@linux.vnet.ibm.com> (Halil Pasic's message of "Mon, 29 May 2017 15:55:17 +0200")

Halil Pasic <pasic@linux.vnet.ibm.com> wrote:
> Although we have recently vmstatified the migration of some css
> infrastructure,  for some css entities there is still state to be
> migrated left, because the focus was keeping migration stream
> compatibility (that is basically everything as-is).
>
> Let us add vmstate helpers and extend existing vmstate descriptions so
> that we have everything we need. Let us guard the added state with via
> css_migration_enabled, so we keep the compatible behavior if css
> migration is disabled.
>
> Let's also annotate the bits which do not need to be migrated for better
> readability.
>
> Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>
> ---
>  hw/intc/s390_flic.c | 20 +++++++++++++++
>  hw/s390x/css.c      | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 94 insertions(+)

Reviewed-by: Juan Quintela <quintela@redhat.com>


For the vmstate bits.  I have exactly zero clue about s390

> +static const VMStateDescription vmstate_chp_info = {
> +    .name = "s390_chp_info",
> +    .version_id = 1,
> +    .minimum_version_id = 1,
> +    .fields = (VMStateField[]) {
> +        VMSTATE_UINT8(in_use, ChpInfo),
> +        VMSTATE_UINT8(type, ChpInfo),
> +        VMSTATE_UINT8(is_virtual, ChpInfo),
> +        VMSTATE_END_OF_LIST()
> +    }
> +};
> +
>  typedef struct SubchSet {
>      SubchDev *sch[MAX_SCHID + 1];
>      unsigned long schids_used[BITS_TO_LONGS(MAX_SCHID + 1)];
> @@ -215,6 +248,19 @@ typedef struct CssImage {
>      ChpInfo chpids[MAX_CHPID + 1];
>  } CssImage;
>  
> +static const VMStateDescription vmstate_css_img = {
> +    .name = "s390_css_img",
> +    .version_id = 1,
> +    .minimum_version_id = 1,
> +    .fields = (VMStateField[]) {
> +        /* Subchannel sets have no relevant state. */
> +        VMSTATE_STRUCT_ARRAY(chpids, CssImage, MAX_CHPID + 1, 0,
> +                             vmstate_chp_info, ChpInfo),
> +        VMSTATE_END_OF_LIST()
> +    }
> +
> +};

> +static const VMStateDescription vmstate_css = {
> +    .name = "s390_css",
> +    .version_id = 1,
> +    .minimum_version_id = 1,
> +    .fields = (VMStateField[]) {
> +        VMSTATE_QTAILQ_V(pending_crws, ChannelSubSys, 1, vmstate_crw_container,
> +                         CrwContainer, sibling),
> +        VMSTATE_BOOL(sei_pending, ChannelSubSys),
> +        VMSTATE_BOOL(do_crw_mchk, ChannelSubSys),
> +        VMSTATE_BOOL(crws_lost, ChannelSubSys),
> +        /* These were kind of migrated by virtio */
> +        VMSTATE_UINT8(max_cssid, ChannelSubSys),
> +        VMSTATE_UINT8(max_ssid, ChannelSubSys),
> +        VMSTATE_BOOL(chnmon_active, ChannelSubSys),
> +        VMSTATE_UINT64(chnmon_area, ChannelSubSys),
> +        VMSTATE_ARRAY_OF_POINTER_TO_STRUCT(css, ChannelSubSys, MAX_CSSID + 1,
> +                0, vmstate_css_img, CssImage),

I was about to suggest to move css from pointer to an embedded struct,
and then noticed that MAX_CSSID is .... 65535.  I guess that this is
going to be sparse, very sparse.  Perhaps there is an easier way to
transmit it?

You are transmiting:

65000 structs each of size MAX_CHPID (255) and each element is byte +
byte +byte = 65000 * 255 * 3 = 47 MB.

If it is really sparse, I think that sending something like a list
of <index in array> <contents> could make sense, no?

Or I am missunderstanding something?

Later, Juan.

  reply	other threads:[~2017-05-31 18:52 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-29 13:55 [Qemu-devel] [PATCH v2 0/7] migration: s390x css migration Halil Pasic
2017-05-29 13:55 ` [Qemu-devel] [PATCH v2 1/7] s390x: vmstatify config migration for virtio-ccw Halil Pasic
2017-05-29 13:55 ` [Qemu-devel] [PATCH v2 2/7] s390x: add helper get_machine_class Halil Pasic
2017-06-01 11:13   ` Cornelia Huck
2017-05-29 13:55 ` [Qemu-devel] [PATCH v2 3/7] s390x: add css_migration_enabled to machine class Halil Pasic
2017-06-01 11:16   ` Cornelia Huck
2017-05-29 13:55 ` [Qemu-devel] [PATCH v2 4/7] s390x/css: add missing css state conditionally Halil Pasic
2017-05-31 18:52   ` Juan Quintela [this message]
2017-06-01  9:35     ` Halil Pasic
2017-06-01 11:32       ` Cornelia Huck
2017-06-01 11:46         ` Halil Pasic
2017-06-07 18:03           ` Juan Quintela
2017-06-08  8:52             ` Halil Pasic
2017-06-01 11:42   ` Cornelia Huck
2017-05-29 13:55 ` [Qemu-devel] [PATCH v2 5/7] s390x/css: add ORB to SubchDev Halil Pasic
2017-06-01 11:45   ` Cornelia Huck
2017-05-29 13:55 ` [Qemu-devel] [PATCH v2 6/7] s390x/css: activate ChannelSubSys migration Halil Pasic
2017-06-01  8:40   ` Thomas Huth
2017-06-01 10:12     ` Halil Pasic
2017-06-01 11:47   ` Cornelia Huck
2017-05-29 13:55 ` [Qemu-devel] [PATCH v2 7/7] s390x/css: use SubchDev.orb Halil Pasic
2017-06-01 11:50   ` Cornelia Huck
2017-05-31 16:46 ` [Qemu-devel] [PATCH v2 0/7] migration: s390x css migration Dr. David Alan Gilbert
2017-06-01 11:51 ` Cornelia Huck

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=87a85sc102.fsf@secure.mitica \
    --to=quintela@redhat.com \
    --cc=bjsdjshi@linux.vnet.ibm.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=dgilbert@redhat.com \
    --cc=pasic@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    /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.