• Will Deacon's avatar
    arm64: futex: Bound number of LDXR/STXR loops in FUTEX_WAKE_OP · 03110a5c
    Will Deacon authored
    Our futex implementation makes use of LDXR/STXR loops to perform atomic
    updates to user memory from atomic context. This can lead to latency
    problems if we end up spinning around the LL/SC sequence at the expense
    of doing something useful.
    
    Rework our futex atomic operations so that we return -EAGAIN if we fail
    to update the futex word after 128 attempts. The core futex code will
    reschedule if necessary and we'll try again later.
    
    Cc: <stable@kernel.org>
    Fixes: 6170a974 ("arm64: Atomic operations")
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    03110a5c
futex.h 3.38 KB