• Benjamin Gray's avatar
    powerpc/ptrace: Expose DEXCR and HDEXCR registers to ptrace · 884ad5c5
    Benjamin Gray authored
    The DEXCR register is of interest when ptracing processes. Currently it
    is static, but eventually will be dynamically controllable by a process.
    If a process can control its own, then it is useful for it to be
    ptrace-able to (e.g., for checkpoint-restore functionality).
    
    It is also relevant to core dumps (the NPHIE aspect in particular),
    which use the ptrace mechanism (or is it the other way around?) to
    decide what to dump. The HDEXCR is useful here too, as the NPHIE aspect
    may be set in the HDEXCR without being set in the DEXCR. Although the
    HDEXCR is per-cpu and we don't track it in the task struct (it's useless
    in normal operation), it would be difficult to imagine why a hypervisor
    would set it to different values within a guest. A hypervisor cannot
    safely set NPHIE differently at least, as that would break programs.
    
    Expose a read-only view of the userspace DEXCR and HDEXCR to ptrace.
    The HDEXCR is always readonly, and is useful for diagnosing the core
    dumps (as the HDEXCR may set NPHIE without the DEXCR setting it).
    Signed-off-by: default avatarBenjamin Gray <bgray@linux.ibm.com>
    Reviewed-by: default avatarRussell Currey <ruscur@russell.cc>
    [mpe: Use lower_32_bits() rather than open coding]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/20230616034846.311705-7-bgray@linux.ibm.com
    884ad5c5
elf.h 13.1 KB