diff mbox

[v3,5/6] s390x/css: activate ChannelSubSys migration

Message ID 20170711145441.33925-6-pasic@linux.vnet.ibm.com
State New
Headers show

Commit Message

Halil Pasic July 11, 2017, 2:54 p.m. UTC
Turn on migration for the channel subsystem for the next machine.  For
legacy machines we still have to do things the old way.

Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
---
 hw/s390x/css.c             | 5 +++++
 hw/s390x/s390-virtio-ccw.c | 9 ++++-----
 include/hw/s390x/css.h     | 4 ++++
 3 files changed, 13 insertions(+), 5 deletions(-)

Comments

Thomas Huth Oct. 3, 2017, 11:58 a.m. UTC | #1
On 11.07.2017 16:54, Halil Pasic wrote:
> Turn on migration for the channel subsystem for the next machine.  For
> legacy machines we still have to do things the old way.
> 
> Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>
> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
> ---
>  hw/s390x/css.c             | 5 +++++
>  hw/s390x/s390-virtio-ccw.c | 9 ++++-----
>  include/hw/s390x/css.h     | 4 ++++
>  3 files changed, 13 insertions(+), 5 deletions(-)
> 
> diff --git a/hw/s390x/css.c b/hw/s390x/css.c
> index 20b5fbed68..b89b60751a 100644
> --- a/hw/s390x/css.c
> +++ b/hw/s390x/css.c
> @@ -407,6 +407,11 @@ static int subch_dev_post_load(void *opaque, int version_id)
>      return 0;
>  }
>  
> +void css_register_vmstate(void)
> +{
> +    vmstate_register(NULL, 0, &vmstate_css, &channel_subsys);
> +}
> +
>  IndAddr *get_indicator(hwaddr ind_addr, int len)
>  {
>      IndAddr *indicator;
> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
> index 751febb87a..20e3f06519 100644
> --- a/hw/s390x/s390-virtio-ccw.c
> +++ b/hw/s390x/s390-virtio-ccw.c
> @@ -206,7 +206,7 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data)
>  
>      s390mc->ri_allowed = true;
>      s390mc->cpu_model_allowed = true;
> -    s390mc->css_migration_enabled = false; /* TODO: set to true */
> +    s390mc->css_migration_enabled = true;
>      mc->init = ccw_init;
>      mc->reset = s390_machine_reset;
>      mc->hot_add_cpu = s390_hot_add_cpu;
> @@ -482,10 +482,9 @@ bool css_migration_enabled(void)
>  
>  static void ccw_machine_2_10_instance_options(MachineState *machine)
>  {
> -    /*
> -     * TODO Once preparations are done register vmstate for the css if
> -     * css_migration_enabled().
> -     */
> +    if (css_migration_enabled()) {
> +        css_register_vmstate();
> +    }
>  }

The location for the above hunk seems to be quite unfortunate: For the
s390-ccw-virtio-2.11 machine, we now do not call css_register_vmstate()
anymore.

Maybe this should rather go into ccw_init() instead?

 Thomas
Cornelia Huck Oct. 4, 2017, 8:16 a.m. UTC | #2
On Tue, 3 Oct 2017 13:58:29 +0200
Thomas Huth <thuth@redhat.com> wrote:

> On 11.07.2017 16:54, Halil Pasic wrote:
> > Turn on migration for the channel subsystem for the next machine.  For
> > legacy machines we still have to do things the old way.
> > 
> > Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>
> > Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
> > ---
> >  hw/s390x/css.c             | 5 +++++
> >  hw/s390x/s390-virtio-ccw.c | 9 ++++-----
> >  include/hw/s390x/css.h     | 4 ++++
> >  3 files changed, 13 insertions(+), 5 deletions(-)
> > 
> > diff --git a/hw/s390x/css.c b/hw/s390x/css.c
> > index 20b5fbed68..b89b60751a 100644
> > --- a/hw/s390x/css.c
> > +++ b/hw/s390x/css.c
> > @@ -407,6 +407,11 @@ static int subch_dev_post_load(void *opaque, int version_id)
> >      return 0;
> >  }
> >  
> > +void css_register_vmstate(void)
> > +{
> > +    vmstate_register(NULL, 0, &vmstate_css, &channel_subsys);
> > +}
> > +
> >  IndAddr *get_indicator(hwaddr ind_addr, int len)
> >  {
> >      IndAddr *indicator;
> > diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
> > index 751febb87a..20e3f06519 100644
> > --- a/hw/s390x/s390-virtio-ccw.c
> > +++ b/hw/s390x/s390-virtio-ccw.c
> > @@ -206,7 +206,7 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data)
> >  
> >      s390mc->ri_allowed = true;
> >      s390mc->cpu_model_allowed = true;
> > -    s390mc->css_migration_enabled = false; /* TODO: set to true */
> > +    s390mc->css_migration_enabled = true;
> >      mc->init = ccw_init;
> >      mc->reset = s390_machine_reset;
> >      mc->hot_add_cpu = s390_hot_add_cpu;
> > @@ -482,10 +482,9 @@ bool css_migration_enabled(void)
> >  
> >  static void ccw_machine_2_10_instance_options(MachineState *machine)
> >  {
> > -    /*
> > -     * TODO Once preparations are done register vmstate for the css if
> > -     * css_migration_enabled().
> > -     */
> > +    if (css_migration_enabled()) {
> > +        css_register_vmstate();
> > +    }
> >  }  
> 
> The location for the above hunk seems to be quite unfortunate: For the
> s390-ccw-virtio-2.11 machine, we now do not call css_register_vmstate()
> anymore.

Hm, you're right... only setting the boolean should be done in the
compat callbacks.

> 
> Maybe this should rather go into ccw_init() instead?

Sounds reasonable. Halil, can you please check (and send a patch if it
makes sense?)
Halil Pasic Oct. 4, 2017, 9:36 a.m. UTC | #3
On 10/04/2017 10:16 AM, Cornelia Huck wrote:
> On Tue, 3 Oct 2017 13:58:29 +0200
> Thomas Huth <thuth@redhat.com> wrote:
> 
>> On 11.07.2017 16:54, Halil Pasic wrote:
>>> Turn on migration for the channel subsystem for the next machine.  For
>>> legacy machines we still have to do things the old way.
>>>
>>> Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>
>>> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
>>> ---
>>>  hw/s390x/css.c             | 5 +++++
>>>  hw/s390x/s390-virtio-ccw.c | 9 ++++-----
>>>  include/hw/s390x/css.h     | 4 ++++
>>>  3 files changed, 13 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/hw/s390x/css.c b/hw/s390x/css.c
>>> index 20b5fbed68..b89b60751a 100644
>>> --- a/hw/s390x/css.c
>>> +++ b/hw/s390x/css.c
>>> @@ -407,6 +407,11 @@ static int subch_dev_post_load(void *opaque, int version_id)
>>>      return 0;
>>>  }
>>>  
>>> +void css_register_vmstate(void)
>>> +{
>>> +    vmstate_register(NULL, 0, &vmstate_css, &channel_subsys);
>>> +}
>>> +
>>>  IndAddr *get_indicator(hwaddr ind_addr, int len)
>>>  {
>>>      IndAddr *indicator;
>>> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
>>> index 751febb87a..20e3f06519 100644
>>> --- a/hw/s390x/s390-virtio-ccw.c
>>> +++ b/hw/s390x/s390-virtio-ccw.c
>>> @@ -206,7 +206,7 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data)
>>>  
>>>      s390mc->ri_allowed = true;
>>>      s390mc->cpu_model_allowed = true;
>>> -    s390mc->css_migration_enabled = false; /* TODO: set to true */
>>> +    s390mc->css_migration_enabled = true;
>>>      mc->init = ccw_init;
>>>      mc->reset = s390_machine_reset;
>>>      mc->hot_add_cpu = s390_hot_add_cpu;
>>> @@ -482,10 +482,9 @@ bool css_migration_enabled(void)
>>>  
>>>  static void ccw_machine_2_10_instance_options(MachineState *machine)
>>>  {
>>> -    /*
>>> -     * TODO Once preparations are done register vmstate for the css if
>>> -     * css_migration_enabled().
>>> -     */
>>> +    if (css_migration_enabled()) {
>>> +        css_register_vmstate();
>>> +    }
>>>  }  
>>
>> The location for the above hunk seems to be quite unfortunate: For the
>> s390-ccw-virtio-2.11 machine, we now do not call css_register_vmstate()
>> anymore.
> 
> Hm, you're right... only setting the boolean should be done in the
> compat callbacks.

Nod.

> 
>>
>> Maybe this should rather go into ccw_init() instead?
> 
> Sounds reasonable. Halil, can you please check (and send a patch if it
> makes sense?)

Makes sense. I will send a patch today.

Halil
>
diff mbox

Patch

diff --git a/hw/s390x/css.c b/hw/s390x/css.c
index 20b5fbed68..b89b60751a 100644
--- a/hw/s390x/css.c
+++ b/hw/s390x/css.c
@@ -407,6 +407,11 @@  static int subch_dev_post_load(void *opaque, int version_id)
     return 0;
 }
 
+void css_register_vmstate(void)
+{
+    vmstate_register(NULL, 0, &vmstate_css, &channel_subsys);
+}
+
 IndAddr *get_indicator(hwaddr ind_addr, int len)
 {
     IndAddr *indicator;
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 751febb87a..20e3f06519 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -206,7 +206,7 @@  static void ccw_machine_class_init(ObjectClass *oc, void *data)
 
     s390mc->ri_allowed = true;
     s390mc->cpu_model_allowed = true;
-    s390mc->css_migration_enabled = false; /* TODO: set to true */
+    s390mc->css_migration_enabled = true;
     mc->init = ccw_init;
     mc->reset = s390_machine_reset;
     mc->hot_add_cpu = s390_hot_add_cpu;
@@ -482,10 +482,9 @@  bool css_migration_enabled(void)
 
 static void ccw_machine_2_10_instance_options(MachineState *machine)
 {
-    /*
-     * TODO Once preparations are done register vmstate for the css if
-     * css_migration_enabled().
-     */
+    if (css_migration_enabled()) {
+        css_register_vmstate();
+    }
 }
 
 static void ccw_machine_2_10_class_options(MachineClass *mc)
diff --git a/include/hw/s390x/css.h b/include/hw/s390x/css.h
index 5d302223e6..949e0f0a28 100644
--- a/include/hw/s390x/css.h
+++ b/include/hw/s390x/css.h
@@ -226,4 +226,8 @@  extern PropertyInfo css_devid_ro_propinfo;
  */
 SubchDev *css_create_sch(CssDevId bus_id, bool is_virtual, bool squash_mcss,
                          Error **errp);
+
+/** Turn on css migration */
+void css_register_vmstate(void);
+
 #endif