All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 10/11] tmem: fixup 2010 cleanup patch that breaks tmem save/restore
@ 2012-09-05 12:40 Jan Beulich
  2012-09-07 10:50 ` zhenzhong.duan
  0 siblings, 1 reply; 3+ messages in thread
From: Jan Beulich @ 2012-09-05 12:40 UTC (permalink / raw)
  To: xen-devel; +Cc: dan.magenheimer, Zhenzhong Duan

[-- Attachment #1: Type: text/plain, Size: 1160 bytes --]

20918:a3fa6d444b25 "Fix domain reference leaks" (in Feb 2010, by Jan)
does some cleanup in addition to the leak fixes.  Unfortunately, that
cleanup inadvertently resulted in an incorrect fallthrough in a switch
statement which breaks tmem save/restore.

That broken patch was apparently applied to 4.0-testing and 4.1-testing
so those are broken as well.

What is the process now for requesting back-patches to 4.0 and 4.1?

(Side note: This does not by itself entirely fix save/restore in 4.2.)

Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -2415,6 +2415,7 @@ static NOINLINE int tmemc_save_subop(int
              break;
         tmh_copy_to_client_buf(buf, pool->uuid, 2);
         rc = 0;
+        break;
     case TMEMC_SAVE_END:
         if ( client == NULL )
             break;
@@ -2425,6 +2426,7 @@ static NOINLINE int tmemc_save_subop(int
                 pgp_free_from_inv_list(client,pgp);
         client->frozen = client->was_frozen;
         rc = 0;
+        break;
     }
     return rc;
 }




[-- Attachment #2: tmem-missing-break --]
[-- Type: application/octet-stream, Size: 1183 bytes --]

tmem: fixup 2010 cleanup patch that breaks tmem save/restore

20918:a3fa6d444b25 "Fix domain reference leaks" (in Feb 2010, by Jan)
does some cleanup in addition to the leak fixes.  Unfortunately, that
cleanup inadvertently resulted in an incorrect fallthrough in a switch
statement which breaks tmem save/restore.

That broken patch was apparently applied to 4.0-testing and 4.1-testing
so those are broken as well.

What is the process now for requesting back-patches to 4.0 and 4.1?

(Side note: This does not by itself entirely fix save/restore in 4.2.)

Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -2415,6 +2415,7 @@ static NOINLINE int tmemc_save_subop(int
              break;
         tmh_copy_to_client_buf(buf, pool->uuid, 2);
         rc = 0;
+        break;
     case TMEMC_SAVE_END:
         if ( client == NULL )
             break;
@@ -2425,6 +2426,7 @@ static NOINLINE int tmemc_save_subop(int
                 pgp_free_from_inv_list(client,pgp);
         client->frozen = client->was_frozen;
         rc = 0;
+        break;
     }
     return rc;
 }

[-- Attachment #3: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 10/11] tmem: fixup 2010 cleanup patch that breaks tmem save/restore
  2012-09-05 12:40 [PATCH 10/11] tmem: fixup 2010 cleanup patch that breaks tmem save/restore Jan Beulich
@ 2012-09-07 10:50 ` zhenzhong.duan
  2012-09-07 11:39   ` Jan Beulich
  0 siblings, 1 reply; 3+ messages in thread
From: zhenzhong.duan @ 2012-09-07 10:50 UTC (permalink / raw)
  To: Jan Beulich; +Cc: dan.magenheimer, xen-devel

Hi Jan, Dan

With this patch applied, 'xm save' worked, restore failed. See below:
[root@sustaining13 OVM_OL5U7_X86_64_PVM_10GB]# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 537 2 r----- 255.3
OVM_OL5U7_X86_64_PVM_10GB 1 1024 2 -b---- 76.2
[root@sustaining13 OVM_OL5U7_X86_64_PVM_10GB]# xm save 1 delete
[root@sustaining13 OVM_OL5U7_X86_64_PVM_10GB]#
[root@sustaining13 OVM_OL5U7_X86_64_PVM_10GB]# xm restore delete
Error: /usr/lib64/xen/bin/xc_restore 4 2 1 2 0 0 0 0 failed
Usage: xm restore <CheckpointFile> [-p]

Restore a domain from a saved state.
-p, --paused Do not unpause domain after restoring it
[root@sustaining13 OVM_OL5U7_X86_64_PVM_10GB]# xm dmesg:
(XEN) tmem.c:2037:d0 tmem: all pools frozen for all domains
(XEN) tmem.c:2037:d0 tmem: all pools thawed for all domains
(XEN) tmem.c:2037:d0 tmem: all pools frozen for all domains
(XEN) tmem.c:2037:d0 tmem: all pools thawed for all domains
(XEN) tmem.c:1220:d1 tmem: initializing tmem capability for 
domid=1...<G><2>tmem.c:1256:d1 ok
(XEN) tmem.c:1912:d1 tmem: allocating ephemeral-private tmem pool for 
domid=1...<G><2>tmem.c:2014:d1 pool_id=0
(XEN) tmem.c:1912:d1 tmem: allocating ephemeral-private tmem pool for 
domid=1...<G><2>tmem.c:2014:d1 pool_id=1
(XEN) tmem.c:1912:d1 tmem: allocating persistent-private tmem pool for 
domid=1...<G><2>tmem.c:2014:d1 pool_id=2
(XEN) tmem.c:2855:d0 tmem: flushing tmem pools for domid=1
(XEN) tmem.c:1197:d0 destroying ephemeral-private tmem pool 
<G><2>tmem.c:1198:d0 domid=1 pool_id=0
(XEN) tmem.c:1197:d0 destroying ephemeral-private tmem pool 
<G><2>tmem.c:1198:d0 domid=1 pool_id=1
(XEN) tmem.c:1197:d0 destroying persistent-private tmem pool 
<G><2>tmem.c:1198:d0 domid=1 pool_id=2
(XEN) tmem.c:2037:d0 tmem: all pools frozen for all domains
(XEN) tmem.c:2037:d0 tmem: all pools thawed for all domains
(XEN) tmem.c:2037:d0 tmem: all pools frozen for all domains
(XEN) tmem.c:2037:d0 tmem: all pools thawed for all domains
(XEN) tmem.c:1220:d0 tmem: initializing tmem capability for 
domid=2...<G><2>tmem.c:1256:d0 ok
(XEN) tmem.c:2268:d0 tmem: weight set to 0 for domid=2
(XEN) tmem.c:2274:d0 tmem: cap set to 0 for domid=2
(XEN) tmem.c:1912:d0 tmem: allocating ephemeral-private tmem pool for 
domid=2...<G><2>tmem.c:1915:d0 failed... unsupported spec version

于 2012-09-05 20:40, Jan Beulich 写道:
> 20918:a3fa6d444b25 "Fix domain reference leaks" (in Feb 2010, by Jan)
> does some cleanup in addition to the leak fixes.  Unfortunately, that
> cleanup inadvertently resulted in an incorrect fallthrough in a switch
> statement which breaks tmem save/restore.
>
> That broken patch was apparently applied to 4.0-testing and 4.1-testing
> so those are broken as well.
>
> What is the process now for requesting back-patches to 4.0 and 4.1?
>
> (Side note: This does not by itself entirely fix save/restore in 4.2.)
>
> Signed-off-by: Dan Magenheimer<dan.magenheimer@oracle.com>
> Signed-off-by: Jan Beulich<jbeulich@suse.com>
>
> --- a/xen/common/tmem.c
> +++ b/xen/common/tmem.c
> @@ -2415,6 +2415,7 @@ static NOINLINE int tmemc_save_subop(int
>                break;
>           tmh_copy_to_client_buf(buf, pool->uuid, 2);
>           rc = 0;
> +        break;
>       case TMEMC_SAVE_END:
>           if ( client == NULL )
>               break;
> @@ -2425,6 +2426,7 @@ static NOINLINE int tmemc_save_subop(int
>                   pgp_free_from_inv_list(client,pgp);
>           client->frozen = client->was_frozen;
>           rc = 0;
> +        break;
>       }
>       return rc;
>   }
>
>
>

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 10/11] tmem: fixup 2010 cleanup patch that breaks tmem save/restore
  2012-09-07 10:50 ` zhenzhong.duan
@ 2012-09-07 11:39   ` Jan Beulich
  0 siblings, 0 replies; 3+ messages in thread
From: Jan Beulich @ 2012-09-07 11:39 UTC (permalink / raw)
  To: zhenzhong.duan; +Cc: dan.magenheimer, xen-devel

>>> On 07.09.12 at 12:50, "zhenzhong.duan" <zhenzhong.duan@oracle.com> wrote:
> With this patch applied, 'xm save' worked, restore failed. See below:
> [root@sustaining13 OVM_OL5U7_X86_64_PVM_10GB]# xm list
> Name ID Mem VCPUs State Time(s)
> Domain-0 0 537 2 r----- 255.3
> OVM_OL5U7_X86_64_PVM_10GB 1 1024 2 -b---- 76.2
> [root@sustaining13 OVM_OL5U7_X86_64_PVM_10GB]# xm save 1 delete
> [root@sustaining13 OVM_OL5U7_X86_64_PVM_10GB]#
> [root@sustaining13 OVM_OL5U7_X86_64_PVM_10GB]# xm restore delete
> Error: /usr/lib64/xen/bin/xc_restore 4 2 1 2 0 0 0 0 failed
> Usage: xm restore <CheckpointFile> [-p]
> 
> Restore a domain from a saved state.
> -p, --paused Do not unpause domain after restoring it
> [root@sustaining13 OVM_OL5U7_X86_64_PVM_10GB]# xm dmesg:
> (XEN) tmem.c:2037:d0 tmem: all pools frozen for all domains
> (XEN) tmem.c:2037:d0 tmem: all pools thawed for all domains
> (XEN) tmem.c:2037:d0 tmem: all pools frozen for all domains
> (XEN) tmem.c:2037:d0 tmem: all pools thawed for all domains
> (XEN) tmem.c:1220:d1 tmem: initializing tmem capability for 
> domid=1...<G><2>tmem.c:1256:d1 ok
> (XEN) tmem.c:1912:d1 tmem: allocating ephemeral-private tmem pool for 
> domid=1...<G><2>tmem.c:2014:d1 pool_id=0
> (XEN) tmem.c:1912:d1 tmem: allocating ephemeral-private tmem pool for 
> domid=1...<G><2>tmem.c:2014:d1 pool_id=1
> (XEN) tmem.c:1912:d1 tmem: allocating persistent-private tmem pool for 
> domid=1...<G><2>tmem.c:2014:d1 pool_id=2
> (XEN) tmem.c:2855:d0 tmem: flushing tmem pools for domid=1
> (XEN) tmem.c:1197:d0 destroying ephemeral-private tmem pool 
> <G><2>tmem.c:1198:d0 domid=1 pool_id=0
> (XEN) tmem.c:1197:d0 destroying ephemeral-private tmem pool 
> <G><2>tmem.c:1198:d0 domid=1 pool_id=1
> (XEN) tmem.c:1197:d0 destroying persistent-private tmem pool 
> <G><2>tmem.c:1198:d0 domid=1 pool_id=2
> (XEN) tmem.c:2037:d0 tmem: all pools frozen for all domains
> (XEN) tmem.c:2037:d0 tmem: all pools thawed for all domains
> (XEN) tmem.c:2037:d0 tmem: all pools frozen for all domains
> (XEN) tmem.c:2037:d0 tmem: all pools thawed for all domains
> (XEN) tmem.c:1220:d0 tmem: initializing tmem capability for 
> domid=2...<G><2>tmem.c:1256:d0 ok
> (XEN) tmem.c:2268:d0 tmem: weight set to 0 for domid=2
> (XEN) tmem.c:2274:d0 tmem: cap set to 0 for domid=2
> (XEN) tmem.c:1912:d0 tmem: allocating ephemeral-private tmem pool for 
> domid=2...<G><2>tmem.c:1915:d0 failed... unsupported spec version

Looks like Dan's patches to bump the tmem ABI from 0 to 1
(22136:b7f0ea22880d, 22137:fd2e5008c2e0 ) failed to fully
update tools/libxc/xc_tmem.c (xc_tmem_restore_new_pool()
in particular for the problem above).

Jan

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-09-07 11:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-05 12:40 [PATCH 10/11] tmem: fixup 2010 cleanup patch that breaks tmem save/restore Jan Beulich
2012-09-07 10:50 ` zhenzhong.duan
2012-09-07 11:39   ` Jan Beulich

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.