Skip to content

VMState port of all cpus

Juan Quintela qemu-devel 4 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v5 Latest35 patches 20 repliesIn review
  2. v436 patches 23 repliesSuperseded
  3. v228 patches 0 repliesSuperseded
Earlier versions · 1
VersionPostedPatchesRepliesStatus
v125 patches13 repliesSuperseded

[v2] Changes since v1 from the cover letter

- preserve arm comment that was missing (pbrook)
- add copyright notice to the files that were empty
- new patches:
* fix formating for i386
* remove unneeded includes
* rename machine.c to vmstate.c

Patches in v5 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/35vmstate: Simplify test for CPU_SAVE_VERSIONexec.c+4 -23 replies
2/35vmstate: make all architectures export a way to migrate cpu'sexec.c target-alpha/machine.c target-i386/machine.c +6 more+61 -292 replies
3/35vmstate: unicore32 don't support cpu migrationtarget-unicore32/cpu.h+0 -20 replies
4/35vmstate: use new cpu style for x86target-i386/cpu.h target-i386/machine.c+1 -130 replies
5/35vmstate: use new style for lm32 cpustarget-lm32/cpu.h target-lm32/machine.c+2 -140 replies
6/35vmstate: make microblaze cpus not migrateabletarget-microblaze/cpu.h target-microblaze/machine.c+18 -100 replies
7/35vmstate: port cris cpu to vmstatetarget-cris/cpu.h target-cris/machine.c+60 -910 replies
8/35vmstate: introduce float32 arrayssavevm.c vmstate.h+30 -01 reply
9/35vmstate: introduce float64 arrayssavevm.c vmstate.h+29 -01 reply
10/35vmstate: introduce CPU_DoubleU arrayssavevm.c vmstate.h+28 -00 replies
11/35vmstate: Introduce VMSTATE_STRUCT_VARRAY_INT32_TESTvmstate.h+10 -00 replies
12/35vmstate: port ppc cputarget-ppc/cpu.h target-ppc/machine.c+90 -1600 replies
13/35vmstate: introduce VMSTATE_VARRAY_MULTIPLYsavevm.c vmstate.h+29 -120 replies
14/35vmstate: define vmstate_info_uinttlshw/hw.h+2 -00 replies
15/35vmstate: port sparc cpuhw/sun4u.c target-sparc/cpu.h target-sparc/machine.c+283 -2200 replies
16/35vmstate: make incompatible change for sparctarget-sparc/machine.c+9 -1634 replies
17/35mips_fulong2e: cpu vmstate already registered in cpu_exec_inithw/mips_fulong2e.c+0 -11 reply
18/35mips: make mvp an embedded struct instead of a pointerhw/mips_malta.c target-mips/cpu.h target-mips/machine.c +3 more+36 -340 replies
19/35mips: make tlb an embedded struct instead of a pointerhw/mips_timer.c target-mips/cpu.h target-mips/helper.c +4 more+89 -810 replies
20/35mips: bump migration version to 4target-mips/cpu.h target-mips/machine.c+5 -70 replies
21/35vmstate: port mips cputarget-mips/cpu.h target-mips/machine.c+182 -2880 replies
22/35arm: save always 32 fpu registerstarget-arm/cpu.h target-arm/machine.c+3 -211 reply
23/35vmstate: port arm cputarget-arm/cpu.h target-arm/machine.c+156 -1933 replies
24/35vmstate: all cpus convertedexec.c qemu-common.h+0 -90 replies
25/35vmstate: fix vmstate formating for i386target-i386/machine.c+8 -80 replies
26/35vmstate: remove unneeded includes from target-*/machine.ctarget-alpha/machine.c target-arm/machine.c target-cris/machine.c +5 more+0 -190 replies
27/35vmstate: rename machine.c to vmstate-cpu.cMakefile.target target-alpha/vmstate-cpu.c target-arm/vmstate-cpu.c +11 more+2 -10 replies
28/35vmstate: Add copyright info for alpha processortarget-alpha/vmstate-cpu.c+15 -00 replies
29/35vmstate: Add copyright info for lm32 processortarget-lm32/vmstate-cpu.c+15 -00 replies
30/35vmstate: Add copyright info for cris processortarget-cris/vmstate-cpu.c+15 -00 replies
31/35vmstate: Add copyright info for arm processortarget-arm/vmstate-cpu.c+15 -00 replies
32/35vmstate: Add copyright info for i386 processortarget-i386/vmstate-cpu.c+28 -00 replies
33/35vmstate: Add copyright info for mips processortarget-mips/vmstate-cpu.c+29 -00 replies
34/35vmstate: Add copyright info for ppc processortarget-ppc/vmstate-cpu.c+30 -00 replies
35/35vmstate: Add copyright info for sparc processortarget-sparc/vmstate-cpu.c+30 -00 replies

Reviews trailers per patch

5 of 35 patches have a Reviewed-by or Acked-by.

PatchMichael WalleRichard HendersonEdgar E. IglesiasAndrzej ZaborowskiBlue Swirl
1/35
2/35
3/35
4/35
5/35
6/35
7/35
8/35
9/35
10/35
11/35
12/35
13/35
14/35
15/35
16/35A-b
17/35
18/35
19/35
20/35
21/35
22/35
23/35
24/35
25/35
26/35
27/35
28/35A-b
29/35A-b
30/35A-b
31/35A-b
32/35
33/35
34/35
35/35

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.

Read the v5 thread

Cover letter [Qemu-devel] [PATCH v5 00/35] VMState port of all cpus

This repository contains all the changes:

git://repo.or.cz/qemu/quintela.git vmstate-cpus-v4

[v5]
- rebase on top
- sparc psr change behaviour: old behaviour was unintended, thanks Blu
- alexander agreed with ppc changes
- patch missing already included for ppc

Anthony, please pull.

[v4]
- rebase to top
- adapt to vmstate.h change
- adapt to CPUState -> CPU$archState rename
- integrate arm changes in the meantime
- add QEMU contributors to the copyright notice of ppc & sparc

[v3]
- rebase to top
- fix sparc/arm/i386 changes in upstream
- all reviews were positive, Anthony, please pull

[v2] Changes since v1

- preserve arm comment that was missing (pbrook)
- add copyright notice to the files that were empty
- new patches:
* fix formating for i386
* remove unneeded includes
* rename machine.c to vmstate.c

[v1]

This series port all cpus to use vmstate.
- 1st patch is a fix of vmstate.
- I discussed the arm changes over irc with Peter, he agreed that some simplification could be good, but he didn't saw the patches O:-)
- mips: no pci chipset has been ported, so migration don't work there. I have embedded a couple of structs to improve vmstate checking. Notice that they were always allocated, so there shouldn't be any problem.
- sparc: I changed the format a little bit to be able to use normal arrays.
- sparc: If we always send the whole register windows, we don't need VMSTATE_VARRAY_MULTIPLY. As that array is quite big (520 elements), I am not sure what is best.
- cpsr_vmstate on arm: I am not sure if I could "abuse" uncached_cpsr for that purpose?

I have only tested on x86, for the rest, I double checked, but it is possible that I missed something. I expect all patches to be integrated by Anthony in one go. Architecture maintainers are CC'd for an ACK/NACK/comments.

Juan Quintela (35):
vmstate: Simplify test for CPU_SAVE_VERSION
vmstate: make all architectures export a way to migrate cpu's
vmstate: unicore32 don't support cpu migration
vmstate: use new cpu style for x86
vmstate: use new style for lm32 cpus
vmstate: make microblaze cpus not migrateable
vmstate: port cris cpu to vmstate
vmstate: introduce float32 arrays
vmstate: introduce float64 arrays
vmstate: introduce CPU_DoubleU arrays
vmstate: Introduce VMSTATE_STRUCT_VARRAY_INT32_TEST
vmstate: port ppc cpu
vmstate: introduce VMSTATE_VARRAY_MULTIPLY
vmstate: define vmstate_info_uinttls
vmstate: port sparc cpu
vmstate: make incompatible change for sparc
mips_fulong2e: cpu vmstate already registered in cpu_exec_init
mips: make mvp an embedded struct instead of a pointer
mips: make tlb an embedded struct instead of a pointer
mips: bump migration version to 4
vmstate: port mips cpu
arm: save always 32 fpu registers
vmstate: port arm cpu
vmstate: all cpus converted
vmstate: fix vmstate formating for i386
vmstate: remove unneeded includes from target-*/machine.c
vmstate: rename machine.c to vmstate-cpu.c
vmstate: Add copyright info for alpha processor
vmstate: Add copyright info for lm32 processor
vmstate: Add copyright info for cris processor
vmstate: Add copyright info for arm processor
vmstate: Add copyright info for i386 processor
vmstate: Add copyright info for mips processor
vmstate: Add copyright info for ppc processor
vmstate: Add copyright info for sparc processor

 Makefile.target                            |    3 +-
 exec.c                                     |    7 +-
 hw/hw.h                                    |    2 +
 hw/mips_fulong2e.c                         |    1 -
 hw/mips_malta.c                            |    4 +-
 hw/mips_timer.c                            |    2 +-
 hw/sun4u.c                                 |   20 --
 qemu-common.h                              |    4 -
 savevm.c                                   |   80 +++++++
 target-alpha/{machine.c => vmstate-cpu.c}  |   28 ++-
 target-arm/cpu.h                           |    5 +-
 target-arm/machine.c                       |  233 ---------------------
 target-arm/vmstate-cpu.c                   |  191 +++++++++++++++++
 target-cris/cpu.h                          |   13 +-
 target-cris/machine.c                      |   90 --------
 target-cris/vmstate-cpu.c                  |   74 +++++++
 target-i386/cpu.h                          |    2 -
 target-i386/{machine.c => vmstate-cpu.c}   |   64 ++++---
 target-lm32/cpu.h                          |    2 -
 target-lm32/{machine.c => vmstate-cpu.c}   |   32 ++--
 target-m68k/vmstate-cpu.c                  |   21 ++
 target-microblaze/cpu.h                    |    2 -
 target-microblaze/machine.c                |   11 -
 target-microblaze/vmstate-cpu.c            |   21 ++
 target-mips/cpu.h                          |   11 +-
 target-mips/helper.c                       |   30 ++-
 target-mips/machine.c                      |  308 ----------------------------
 target-mips/op_helper.c                    |   70 ++++---
 target-mips/translate.c                    |   22 ++-
 target-mips/translate_init.c               |   36 ++--
 target-mips/vmstate-cpu.c                  |  225 ++++++++++++++++++++
 target-ppc/cpu.h                           |    5 +-
 target-ppc/machine.c                       |  173 ----------------
 target-ppc/vmstate-cpu.c                   |  130 ++++++++++++
 target-s390x/{machine.c => vmstate-cpu.c}  |   14 +-
 target-sh4/vmstate-cpu.c                   |   21 ++
 target-sparc/cpu.h                         |    9 +-
 target-sparc/machine.c                     |  217 -------------------
 target-sparc/vmstate-cpu.c                 |  175 ++++++++++++++++
 target-unicore32/cpu.h                     |    2 -
 target-xtensa/{machine.c => vmstate-cpu.c} |   14 +-
 vmstate.h                                  |   60 +++++-
 42 files changed, 1185 insertions(+), 1249 deletions(-)
 rename target-alpha/{machine.c => vmstate-cpu.c} (85%)
 delete mode 100644 target-arm/machine.c
 create mode 100644 target-arm/vmstate-cpu.c
 delete mode 100644 target-cris/machine.c
 create mode 100644 target-cris/vmstate-cpu.c
 rename target-i386/{machine.c => vmstate-cpu.c} (89%)
 rename target-lm32/{machine.c => vmstate-cpu.c} (58%)
 delete mode 100644 target-m68k/machine.c
 create mode 100644 target-m68k/vmstate-cpu.c
 delete mode 100644 target-microblaze/machine.c
 create mode 100644 target-microblaze/vmstate-cpu.c
 delete mode 100644 target-mips/machine.c
 create mode 100644 target-mips/vmstate-cpu.c
 delete mode 100644 target-ppc/machine.c
 create mode 100644 target-ppc/vmstate-cpu.c
 rename target-s390x/{machine.c => vmstate-cpu.c} (79%)
 delete mode 100644 target-sh4/machine.c
 create mode 100644 target-sh4/vmstate-cpu.c
 delete mode 100644 target-sparc/machine.c
 create mode 100644 target-sparc/vmstate-cpu.c
 rename target-xtensa/{machine.c => vmstate-cpu.c} (88%)
Signature · 1 line
1.7.7.6