vdso: arm32 support

Submitted by Dmitry Safonov on May 22, 2019, 6:18 p.m.

Details

Reviewer None
Submitted May 22, 2019, 6:18 p.m.
Last Updated May 30, 2019, 4:12 a.m.
Revision 2

Cover Letter

Purge CONFIG_VDSO from CRIU and add arm32 helpers.
Tested on RPI2 B+ board with vdso00/vdso02/vdso-proxy
and fault-injected vdso proxification.

Changes to v2:
- added a big comment to criu-check test
- more precise messages when the check fails
- patch to omit inserting trampolines into vsyscall on ia32

Travis-CI: https://travis-ci.org/0x7f454c46/criu/builds/538805444

Dmitry Safonov (12):
  cr-check: Add check for mremap() of special mappings
  vdso/arm: Add vdso symbols from kernel
  parasite-vdso: Add ugly casts for arm32
  vdso/arm32: Add vdso trampoline support
  arm: Build {pie-,}util-vdso with CONFIG_VDSO_32
  arm: Provide aeabi helpers in ARM format
  arm/pie: Provide __clear_cache()
  rt-vdso: Be verbose if !blobs_matches()
  x86/vdso: Don't insert trampolines in vsyscall
  util-vdso: Check chain for STN_UNDEF
  pie/build: Add CFLAGS_PIE to CFLAGS
  criu/vdso: Purge CONFIG_VDSO

 Makefile                                      |   8 +-
 Makefile.config                               |   4 -
 .../arch/arm/plugins/std/syscalls/syscall.def |   1 +
 criu/Makefile.crtools                         |   5 +-
 criu/arch/arm/aeabi-helpers.S                 |  96 +++++++++
 criu/arch/arm/include/asm/vdso.h              |  17 ++
 criu/arch/arm/pie-cacheflush.c                |   7 +
 criu/arch/arm/uidiv.S                         | 186 ------------------
 criu/arch/arm/vdso-pie.c                      |  58 ++++++
 criu/arch/x86/include/asm/vdso.h              |  25 ++-
 criu/cr-check.c                               | 174 +++++++++++++++-
 criu/cr-restore.c                             |   6 -
 criu/include/kerndat.h                        |   4 -
 criu/include/parasite-vdso.h                  |   9 -
 criu/include/restorer.h                       |   2 -
 criu/include/vdso.h                           |  13 --
 criu/mem.c                                    |   3 +-
 criu/pie/Makefile                             |  21 +-
 criu/pie/Makefile.library                     |  16 +-
 criu/pie/parasite-vdso.c                      |  40 +++-
 criu/pie/parasite.c                           |   8 -
 criu/pie/restorer.c                           |   8 -
 criu/pie/util-vdso.c                          |   2 +-
 criu/proc_parse.c                             |  14 --
 include/common/arch/arm/asm/linkage.h         |   4 +
 test/zdtm/static/vdso01.c                     |   2 +-
 26 files changed, 435 insertions(+), 298 deletions(-)
 create mode 100644 criu/arch/arm/aeabi-helpers.S
 create mode 100644 criu/arch/arm/include/asm/vdso.h
 create mode 100644 criu/arch/arm/pie-cacheflush.c
 delete mode 100644 criu/arch/arm/uidiv.S
 create mode 100644 criu/arch/arm/vdso-pie.c
  

Revisions