• Chris Metcalf's avatar
    arch/tile: optimize get_user/put_user and friends · 47d632f9
    Chris Metcalf authored
    Use direct load/store for the get_user/put_user.
    
    Previously, we would call out to a helper routine that would do the
    appropriate thing and then return, handling the possible exception
    internally.  Now we inline the load or store, along with a "we succeeded"
    indication in a register; if the load or store faults, we write a
    "we failed" indication into the same register and then return to the
    following instruction.  This is more efficient and gives us more compact
    code, as well as being more in line with what other architectures do.
    
    The special futex assembly source file for TILE-Gx also disappears in
    this change; we just use the same inlining idiom there as well, putting
    the appropriate atomic operations directly into futex_atomic_op_inuser()
    (and thus into the FUTEX_WAIT function).
    
    The underlying atomic copy_from_user, copy_to_user functions were
    renamed using the (cryptic) x86 convention as copy_from_user_ll and
    copy_to_user_ll.
    Signed-off-by: default avatarChris Metcalf <cmetcalf@tilera.com>
    47d632f9
atomic_32.c 8.31 KB