criu/pie
Laurent Dufour 303b875892 arch/ppc64: Add PowerPC 64 LE support
This patch initiates the ppc64le architecture support in CRIU.

Note that ppc64 (Big Endian) architecture is not yet supported since there
are still several issues to address with this architecture. However, in the
long term, the two architectures should be addressed using the almost the
same code, so sharing the ppc64 directory.

Major ppc64 issues:

Loader is not involved when the parasite code is loaded. So no relocation
is done for the parasite code. As a consequence r2 must be set manually
when entering the parasite code, and GOT is not filled.

Furthermore, the r2 fixup code at the services's global address which has
not been fixed by the loader should not be run. Branching at local address,
as the assembly code does is jumping over it.

On the long term, relocation should be done when loading the parasite code.

We are introducing 2 trampolines for the 2 entry points of the restorer
blob.  These entry points are dealing with r2. These ppc64 specific entry
points are overwritting the standard one in sigreturn_restore() from
cr-restore.c.  Instead of using #ifdef, we may introduce a per arch wrapper
here.

CRIU needs 2 kernel patches to be run powerpc which are not yet upstream:
 - Tracking the vDSO remapping
 - Enabling the kcmp system call on powerpc

Feature not yet supported:
- Altivec registers C/R
- VSX registers C/R
- TM support
- all lot of things I missed..

Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-04-30 09:57:49 +03:00
..
log-simple.c plugin: allow to use logging function in plugins 2013-12-18 21:52:12 +04:00
Makefile arch/ppc64: Add PowerPC 64 LE support 2015-04-30 09:57:49 +03:00
parasite.c tty: Rework tty_driver structure 2015-04-02 20:20:01 +03:00
pie.lds.S.in arch/ppc64: Add PowerPC 64 LE support 2015-04-30 09:57:49 +03:00
restorer.c restorer: Drop redundant VMA_AREA_REGULAR tests 2015-04-01 12:36:47 +03:00
util-fd.c util-fd: Use standard BUG_ON instead of hand-made 2015-03-04 17:50:06 +03:00
util.c criu: Drop redundant newline from pr_perror 2014-08-22 19:22:39 +04:00