Large pages support for aarch64/ppc64

Submitted by Dmitry Safonov on March 26, 2018, 1:06 p.m.

Details

Reviewer None
Submitted March 26, 2018, 1:06 p.m.
Last Updated May 11, 2018, 6:08 a.m.
Revision 4

Cover Letter

v4 Changes:
o aio tests failed case overflow in NR_IOEVENTS_IN_PAGES macro.

v3 Changes:
o PAGE_SIZE as a global in PIEs doesn't work on aarch64,
  I'll need to add relocs support to compel there eventually.
  Revert this simplification to v1.

v2 Changes:
o Add patches for global variables in PIEs
o Simplify ARCH_HAS_LONG_PAGES
o cache PAGE_SIZE and PAGE_SHIFT values
  (as nitpicked by Mike)

TLDR; CRIU doesn't work if:
on aarch64 it's when PAGE_SIZE!=4K,
on ppc64 it's when PAGE_SIZE!=64K

Cc: Adrian Reber <areber@redhat.com>
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com>

Dmitry Safonov (8):
  criu: Remove PAGE_IMAGE_SIZE
  parasite: Rename misnamed nr_pages
  aio: Allow expressions in NR_IOEVENTS_IN_PAGES macro
  compel/criu: Add ARCH_HAS_LONG_PAGES to PIE binaries
  criu/dump: Fix size of personality buffer
  criu/log: Define log buffer length without PAGE_SIZE
  criu/proc: Define BUF_SIZE without PAGE_SIZE dependency
  ppc64/aarch64: Dynamically define PAGE_SIZE

 compel/include/rpc-pie-priv.h          |  3 +++
 compel/plugins/std/infect.c            | 17 ++++++++++++
 compel/src/lib/infect.c                |  3 +++
 criu/aio.c                             |  2 +-
 criu/arch/aarch64/crtools.c            |  3 +++
 criu/arch/ppc64/crtools.c              |  3 +++
 criu/cr-dump.c                         |  3 ++-
 criu/cr-restore.c                      |  3 +++
 criu/crtools.c                         |  1 -
 criu/include/image.h                   |  5 ----
 criu/include/restorer.h                |  3 +++
 criu/log.c                             |  3 ++-
 criu/pie/parasite.c                    | 10 ++++----
 criu/pie/restorer.c                    | 16 ++++++++++++
 criu/proc_parse.c                      |  6 ++---
 include/common/arch/aarch64/asm/page.h | 45 ++++++++++++++++++++++++--------
 include/common/arch/ppc64/asm/page.h   | 47 ++++++++++++++++++++++++----------
 17 files changed, 131 insertions(+), 42 deletions(-)
  

Revisions