• 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
pie.lds.S.in 359 Bytes