Patchwork [PULL,00/35] VMState port of all cpus

login
register
mail settings
Submitter Juan Quintela
Date Dec. 7, 2011, 6:42 p.m.
Message ID <cover.1323282613.git.quintela@redhat.com>
Download mbox
Permalink /patch/130011/
State New
Headers show

Pull-request

ssh://repo.or.cz/srv/git/qemu/quintela.git vmstate-cpus-v4-for-anthony

Comments

Juan Quintela - Dec. 7, 2011, 6:42 p.m.
The following changes since commit 217bfb445b54db618a30f3a39170bebd9fd9dbf2:

  hw/arm_gic.c: Ignore attempts to complete nonexistent IRQs (2011-12-05 21:38:56 +0100)

are available in the git repository at:
  ssh://repo.or.cz/srv/git/qemu/quintela.git vmstate-cpus-v4-for-anthony

[v4]
- change comment: 
    * Bassed on qemu-file code done by:
  to
   * Based on savevm serialization code by:
- dropped sparc/ppc copyright notices.  After two tries, I haven't got
  something that Blae is happy with.


[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

Later, Juan.

[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.

Please, review.

PD. Is there an easy way of creating this "CC" list of mail addresses,
    or the only way is to edit comments and write it by hand as I did?


Juan Quintela (35):
      vmstate: Fix VMSTATE_VARRAY_UINT32
      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: machine.c is only compiled for !CONFIG_USER_ONLY
      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

 Makefile.target                            |    3 +-
 exec.c                                     |    7 +-
 hw/hw.h                                    |   62 +++++-
 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                                   |   92 +++++++++
 target-alpha/{machine.c => vmstate-cpu.c}  |   28 ++-
 target-arm/cpu.h                           |    5 +-
 target-arm/machine.c                       |  225 --------------------
 target-arm/vmstate-cpu.c                   |  188 +++++++++++++++++
 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                       |  181 ----------------
 target-ppc/vmstate-cpu.c                   |  100 +++++++++
 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                 |  145 +++++++++++++
 target-unicore32/cpu.h                     |    2 -
 target-xtensa/{machine.c => vmstate-cpu.c} |   14 +-
 41 files changed, 1134 insertions(+), 1249 deletions(-)
 rename target-alpha/{machine.c => vmstate-cpu.c} (84%)
 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} (57%)
 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%)
Blue Swirl - Dec. 8, 2011, 8:15 p.m.
On Wed, Dec 7, 2011 at 18:42, Juan Quintela <quintela@redhat.com> wrote:
> The following changes since commit 217bfb445b54db618a30f3a39170bebd9fd9dbf2:
>
>  hw/arm_gic.c: Ignore attempts to complete nonexistent IRQs (2011-12-05 21:38:56 +0100)
>
> are available in the git repository at:
>  ssh://repo.or.cz/srv/git/qemu/quintela.git vmstate-cpus-v4-for-anthony
>
> [v4]
> - change comment:
>    * Bassed on qemu-file code done by:
>  to
>   * Based on savevm serialization code by:
> - dropped sparc/ppc copyright notices.  After two tries, I haven't got
>  something that Blae is happy with.

I don't have a strong preference, except that if a list exists, it
should be a bit more accurate than just one or two random
contributors. I'd be happy with Paolo's generic "QEMU contributors"
version too, or for example a list of Fabrice, me, Red Hat and "QEMU
contributors" to cover the rest.

>
> [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
>
> Later, Juan.
>
> [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.
>
> Please, review.
>
> PD. Is there an easy way of creating this "CC" list of mail addresses,
>    or the only way is to edit comments and write it by hand as I did?
>
>
> Juan Quintela (35):
>      vmstate: Fix VMSTATE_VARRAY_UINT32
>      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: machine.c is only compiled for !CONFIG_USER_ONLY
>      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
>
>  Makefile.target                            |    3 +-
>  exec.c                                     |    7 +-
>  hw/hw.h                                    |   62 +++++-
>  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                                   |   92 +++++++++
>  target-alpha/{machine.c => vmstate-cpu.c}  |   28 ++-
>  target-arm/cpu.h                           |    5 +-
>  target-arm/machine.c                       |  225 --------------------
>  target-arm/vmstate-cpu.c                   |  188 +++++++++++++++++
>  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                       |  181 ----------------
>  target-ppc/vmstate-cpu.c                   |  100 +++++++++
>  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                 |  145 +++++++++++++
>  target-unicore32/cpu.h                     |    2 -
>  target-xtensa/{machine.c => vmstate-cpu.c} |   14 +-
>  41 files changed, 1134 insertions(+), 1249 deletions(-)
>  rename target-alpha/{machine.c => vmstate-cpu.c} (84%)
>  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} (57%)
>  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%)
>
> --
> 1.7.7.3
>
>