• Paul Gortmaker's avatar
    [ARM] 3911/2: Simplify alloc_thread_info on ARM · 12221442
    Paul Gortmaker authored
    Remove ARM local cache of 4 struct thread_info.
    Can cause oops under certain circumstances.
    
    Russell indicated the original optimization was
    required on older kernels to avoid thread starvation
    on memory fragmentation, but may no longer be
    required.  I've updated the patch to 19rc4 and
    ensured no <config.h> dain-bramage slipped in this
    time (sorry about that).
    
    Original description follows:
    
    I was given some test results which pointed to an
    Oops in alloc_thread_info (happened 2x), and after
    looking at the code, I see that ARM has its own
    local cache of 4 struct thread_info. There wasn't
    any clear (to me) synchronization between the
    alloc_thread_info and the free_thread_info.
    
    I looked over the other arch, and they all simply
    allocate them on an as needed basis, so I simplified
    the ARM to do the same, based on the other arch
    (e.g. PPC) and the folks doing the testing have
    indicated that this fixed the oops.
    Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    12221442
process.c 9.72 KB