• Oleg Nesterov's avatar
    pids: alloc_pidmap: remove the unnecessary boundary checks · c52b0b91
    Oleg Nesterov authored
    alloc_pidmap() calculates max_scan so that if the initial offset != 0 we
    inspect the first map->page twice.  This is correct, we want to find the
    unused bits < offset in this bitmap block.  Add the comment.
    
    But it doesn't make any sense to stop the find_next_offset() loop when we
    are looking into this map->page for the second time.  We have already
    already checked the bits >= offset during the first attempt, it is fine to
    do this again, no matter if we succeed this time or not.
    
    Remove this hard-to-understand code.  It optimizes the very unlikely case
    when we are going to fail, but slows down the more likely case.
    Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
    Cc: Salman Qazi <sqazi@google.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Sukadev Bhattiprolu <sukadev@us.ibm.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    c52b0b91
pid.c 13.7 KB