• Laurent Dufour's avatar
    arch/ppc64: Add PowerPC 64 LE support · 303b8758
    Laurent Dufour authored
    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: 's avatarLaurent Dufour <ldufour@linux.vnet.ibm.com>
    Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
    303b8758
Name
Last commit
Last update
Documentation Loading commit data...
arch Loading commit data...
contrib Loading commit data...
include Loading commit data...
lib Loading commit data...
pie Loading commit data...
protobuf Loading commit data...
pycriu Loading commit data...
scripts Loading commit data...
test Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
.travis.yml Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
Dockerfile Loading commit data...
Makefile Loading commit data...
Makefile.config Loading commit data...
Makefile.crtools Loading commit data...
Makefile.inc Loading commit data...
README Loading commit data...
action-scripts.c Loading commit data...
aio.c Loading commit data...
bfd.c Loading commit data...
cgroup.c Loading commit data...
cr-check.c Loading commit data...
cr-dedup.c Loading commit data...
cr-dump.c Loading commit data...
cr-errno.c Loading commit data...
cr-exec.c Loading commit data...
cr-restore.c Loading commit data...
cr-service.c Loading commit data...
cr-show.c Loading commit data...
crit Loading commit data...
crtools Loading commit data...
crtools.c Loading commit data...
eventfd.c Loading commit data...
eventpoll.c Loading commit data...
fifo.c Loading commit data...
file-ids.c Loading commit data...
file-lock.c Loading commit data...
files-ext.c Loading commit data...
files-reg.c Loading commit data...
files.c Loading commit data...
fsnotify.c Loading commit data...
image-desc.c Loading commit data...
image.c Loading commit data...
ipc_ns.c Loading commit data...
irmap.c Loading commit data...
kcmp-ids.c Loading commit data...
kerndat.c Loading commit data...
libnetlink.c Loading commit data...
log.c Loading commit data...
mem.c Loading commit data...
mount.c Loading commit data...
namespaces.c Loading commit data...
net.c Loading commit data...
netfilter.c Loading commit data...
page-pipe.c Loading commit data...
page-read.c Loading commit data...
page-xfer.c Loading commit data...
pagemap-cache.c Loading commit data...
parasite-syscall.c Loading commit data...
pipes.c Loading commit data...
plugin.c Loading commit data...
proc_parse.c Loading commit data...
protobuf-desc.c Loading commit data...
protobuf.c Loading commit data...
pstree.c Loading commit data...
ptrace.c Loading commit data...
rbtree.c Loading commit data...
rst-malloc.c Loading commit data...
sd-daemon.c Loading commit data...
sd-daemon.h Loading commit data...
security.c Loading commit data...
shmem.c Loading commit data...
sigframe.c Loading commit data...
signalfd.c Loading commit data...
sk-inet.c Loading commit data...
sk-netlink.c Loading commit data...
sk-packet.c Loading commit data...
sk-queue.c Loading commit data...
sk-tcp.c Loading commit data...
sk-unix.c Loading commit data...
sockets.c Loading commit data...
stats.c Loading commit data...
string.c Loading commit data...
sysctl.c Loading commit data...
sysfs_parse.c Loading commit data...
timerfd.c Loading commit data...
tty.c Loading commit data...
tun.c Loading commit data...
util.c Loading commit data...
uts_ns.c Loading commit data...