[PATCH v2] target/ppc: Fix migration of CPUs with TLB_EMB TLB type

Arman Nabiev posted 1 patch 3 months ago
target/ppc/machine.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v2] target/ppc: Fix migration of CPUs with TLB_EMB TLB type
Posted by Arman Nabiev 3 months ago
From: Arman Nabiev <nabiev.arman13@gmail.com>

In vmstate_tlbemb a cut-and-paste error meant we gave
this vmstate subsection the same "cpu/tlb6xx" name as
the vmstate_tlb6xx subsection. This breaks migration load
for any CPU using the TLB_EMB CPU type, because when we
see the "tlb6xx" name in the incoming data we try to
interpret it as a vmstate_tlb6xx subsection, which it
isn't the right format for:

 $ qemu-system-ppc -drive
 if=none,format=qcow2,file=/home/petmay01/test-images/virt/dummy.qcow2
 -monitor stdio -M bamboo
 QEMU 9.0.92 monitor - type 'help' for more information
 (qemu) savevm foo
 (qemu) loadvm foo
 Missing section footer for cpu
 Error: Error -22 while loading VM state

Correct the incorrect vmstate section name. Since migration
for these CPU types was completely broken before, we don't
need to care that this is a migration compatibility break.

This affects the PPC 405, 440, 460 and e200 CPU families.

Cc: qemu-stable@nongnu.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2522
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Arman Nabiev <nabiev.arman13@gmail.com>
---
 target/ppc/machine.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/ppc/machine.c b/target/ppc/machine.c
index 731dd8df35..d433fd45fc 100644
--- a/target/ppc/machine.c
+++ b/target/ppc/machine.c
@@ -621,7 +621,7 @@ static bool tlbemb_needed(void *opaque)
 }

 static const VMStateDescription vmstate_tlbemb = {
-    .name = "cpu/tlb6xx",
+    .name = "cpu/tlbemb",
     .version_id = 1,
     .minimum_version_id = 1,
     .needed = tlbemb_needed,
-- 
2.34.1
Re: [PATCH v2] target/ppc: Fix migration of CPUs with TLB_EMB TLB type
Posted by Peter Maydell 3 months ago
On Thu, 22 Aug 2024 at 17:57, Arman Nabiev <nabiev.arman13@gmail.com> wrote:
>
> From: Arman Nabiev <nabiev.arman13@gmail.com>
>
> In vmstate_tlbemb a cut-and-paste error meant we gave
> this vmstate subsection the same "cpu/tlb6xx" name as
> the vmstate_tlb6xx subsection. This breaks migration load
> for any CPU using the TLB_EMB CPU type, because when we
> see the "tlb6xx" name in the incoming data we try to
> interpret it as a vmstate_tlb6xx subsection, which it
> isn't the right format for:
>
>  $ qemu-system-ppc -drive
>  if=none,format=qcow2,file=/home/petmay01/test-images/virt/dummy.qcow2
>  -monitor stdio -M bamboo
>  QEMU 9.0.92 monitor - type 'help' for more information
>  (qemu) savevm foo
>  (qemu) loadvm foo
>  Missing section footer for cpu
>  Error: Error -22 while loading VM state
>
> Correct the incorrect vmstate section name. Since migration
> for these CPU types was completely broken before, we don't
> need to care that this is a migration compatibility break.
>
> This affects the PPC 405, 440, 460 and e200 CPU families.
>
> Cc: qemu-stable@nongnu.org
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2522
> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: Arman Nabiev <nabiev.arman13@gmail.com>
> ---
>  target/ppc/machine.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/target/ppc/machine.c b/target/ppc/machine.c
> index 731dd8df35..d433fd45fc 100644
> --- a/target/ppc/machine.c
> +++ b/target/ppc/machine.c
> @@ -621,7 +621,7 @@ static bool tlbemb_needed(void *opaque)
>  }
>
>  static const VMStateDescription vmstate_tlbemb = {
> -    .name = "cpu/tlb6xx",
> +    .name = "cpu/tlbemb",
>      .version_id = 1,
>      .minimum_version_id = 1,
>      .needed = tlbemb_needed,

Thanks for resending this -- looks good to me now.
I've added the ppc maintainers on CC so they can pick it up.

-- PMM