[CRIU] [PATCH 1/7] Add architecture support for s390x

Michael Holzheu holzheu at linux.vnet.ibm.com
Wed Jun 28 19:56:34 MSK 2017


Am Wed, 28 Jun 2017 19:46:30 +0300
schrieb Mike Rapoport <rppt at linux.vnet.ibm.com>:

> Hello Michael,
> 
> On Wed, Jun 28, 2017 at 06:11:59PM +0200, Michael Holzheu wrote:
> > This patch adds the required functionality to make CRIU run on mainframe
> > z Systems machines (s390x).
> > 
> > S390x is is a 64 bit big endian CISC architecture.
> > 
> > This patch set does not include:
> > 
> >  * Support for 31 bit compat tasks
> >  * Support for processes that use s390 runtime instrumentation
> > 
> > Some parts of the patch have been contributed by:
> > 
> >  * Alice Frosi <alice at linux.vnet.ibm.com>
> > 
> > Reviewed-by: Alice Frosi <alice at linux.vnet.ibm.com>
> > Signed-off-by: Michael Holzheu <holzheu at linux.vnet.ibm.com>
> > ---
> >  Makefile                                           |  37 +-
> >  compel/.gitignore                                  |   1 +
> >  compel/Makefile                                    |   8 +
> >  compel/arch/s390/plugins/include/asm/prologue.h    |   1 +
> >  .../arch/s390/plugins/include/asm/syscall-types.h  |  34 ++
> >  compel/arch/s390/plugins/std/parasite-head.S       |  26 +
> >  .../s390/plugins/std/syscalls/Makefile.syscalls    |  58 +++
> >  .../plugins/std/syscalls/syscall-common-s390.S     |  37 ++
> >  .../s390/plugins/std/syscalls/syscall-s390.tbl     | 108 ++++
> >  .../arch/s390/plugins/std/syscalls/syscalls-s390.c |  26 +
> >  compel/arch/s390/scripts/compel-pack.lds.S         |  40 ++
> >  compel/arch/s390/src/lib/cpu.c                     |  42 ++
> >  compel/arch/s390/src/lib/handle-elf-host.c         |   1 +
> >  compel/arch/s390/src/lib/handle-elf.c              |  22 +
> >  compel/arch/s390/src/lib/include/handle-elf.h      |  13 +
> >  compel/arch/s390/src/lib/include/syscall.h         |   8 +
> >  .../s390/src/lib/include/uapi/asm/breakpoints.h    |  15 +
> >  compel/arch/s390/src/lib/include/uapi/asm/cpu.h    |  10 +
> >  compel/arch/s390/src/lib/include/uapi/asm/fpu.h    |  14 +
> >  .../s390/src/lib/include/uapi/asm/infect-types.h   |  75 +++
> >  .../src/lib/include/uapi/asm/processor-flags.h     |   0
> >  .../arch/s390/src/lib/include/uapi/asm/sigframe.h  |  75 +++
> >  compel/arch/s390/src/lib/infect.c                  | 559 +++++++++++++++++++++
> >  compel/plugins/Makefile                            |   7 +
> >  compel/src/lib/handle-elf.c                        |  25 +
> >  compel/src/main.c                                  |   3 +
> >  criu/arch/s390/Makefile                            |  10 +
> >  criu/arch/s390/cpu.c                               | 158 ++++++
> >  criu/arch/s390/crtools.c                           | 341 +++++++++++++
> >  criu/arch/s390/include/asm/dump.h                  |  12 +
> >  criu/arch/s390/include/asm/int.h                   |   6 +
> >  criu/arch/s390/include/asm/parasite-syscall.h      |   6 +
> >  criu/arch/s390/include/asm/parasite.h              |   7 +
> >  criu/arch/s390/include/asm/restore.h               |  29 ++
> >  criu/arch/s390/include/asm/restorer.h              |  65 +++
> >  criu/arch/s390/include/asm/types.h                 |  37 ++
> >  criu/arch/s390/include/asm/vdso.h                  |  23 +
> >  criu/arch/s390/restorer.c                          |  37 ++
> >  criu/arch/s390/sigframe.c                          |  20 +
> >  criu/arch/s390/vdso-pie.c                          |  65 +++
> >  criu/mem.c                                         |  19 +
> >  criu/pie/Makefile                                  |   7 +
> >  criu/pie/Makefile.library                          |   7 +
> >  criu/pie/util-vdso.c                               |  25 +-
> >  criu/proc_parse.c                                  |  19 +
> >  criu/tty.c                                         |  11 +
> >  criu/util.c                                        |   5 +
> >  images/Makefile                                    |   1 +
> >  images/core-s390.proto                             |  39 ++
> >  images/core.proto                                  |   3 +
> >  images/cpuinfo.proto                               |   5 +
> >  include/common/arch/s390/asm/atomic.h              |  67 +++
> >  include/common/arch/s390/asm/atomic_ops.h          |  74 +++
> >  include/common/arch/s390/asm/bitops.h              | 164 ++++++
> >  include/common/arch/s390/asm/bitsperlong.h         |   6 +
> >  include/common/arch/s390/asm/linkage.h             |  22 +
> >  include/common/arch/s390/asm/page.h                |  19 +
> >  test/zdtm/lib/arch/s390/include/asm/atomic.h       |  66 +++
> >  test/zdtm/lib/test.c                               |   5 +
> >  test/zdtm/static/Makefile                          |   1 +
> >  test/zdtm/static/fanotify00.c                      |   3 +
> >  test/zdtm/static/mntns-deleted-dst                 |   0
> >  test/zdtm/static/netns-nf.desc                     |   2 +-
> >  test/zdtm/static/rtc.desc                          |   2 +-
> >  test/zdtm/static/s390x_mmap_high.c                 |  64 +++
> >  test/zdtm/static/s390x_mmap_high.desc              |   1 +
> >  test/zdtm/static/socket-tcp-closed-last-ack.desc   |   4 +-
> >  test/zdtm/static/vt.c                              |   8 +-
> >  68 files changed, 2683 insertions(+), 27 deletions(-)
> 
> This is really big patch and it would be really hard to review it.
> 
> I would suggest to split it into several smaller patches.
> I also believe that it would be better for the review if the arch specific
> bits would be separated from core functionality changes.

I thought about that, but in the end almost all in this patch is s390
specific stuff. Even the few common code files have "#ifdef __s390x__".

Patches 2-7 are common code changes that are not 100% s390 specific.

So what exactly is your suggestion for splitting up the patch?
Or perhaps could you point me to the ppc or arm patches?

Michael



More information about the CRIU mailing list