• Waiman Long's avatar
    locking/rwsem: Code cleanup after files merging · 6cef7ff6
    Waiman Long authored
    After merging all the relevant rwsem code into one single file, there
    are a number of optimizations and cleanups that can be done:
    
     1) Remove all the EXPORT_SYMBOL() calls for functions that are not
        accessed elsewhere.
     2) Remove all the __visible tags as none of the functions will be
        called from assembly code anymore.
     3) Make all the internal functions static.
     4) Remove some unneeded blank lines.
     5) Remove the intermediate rwsem_down_{read|write}_failed*() functions
        and rename __rwsem_down_{read|write}_failed_common() to
        rwsem_down_{read|write}_slowpath().
     6) Remove "__" prefix of __rwsem_mark_wake().
     7) Use atomic_long_try_cmpxchg_acquire() as much as possible.
     8) Remove the rwsem_rtrylock and rwsem_wtrylock lock events as they
        are not that useful.
    
    That enables the compiler to do better optimization and reduce code
    size. The text+data size of rwsem.o on an x86-64 machine with gcc8 was
    reduced from 10237 bytes to 5030 bytes with this change.
    Suggested-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Signed-off-by: default avatarWaiman Long <longman@redhat.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tim Chen <tim.c.chen@linux.intel.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: huang ying <huang.ying.caritas@gmail.com>
    Link: https://lkml.kernel.org/r/20190520205918.22251-6-longman@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    6cef7ff6
lock_events_list.h 2.85 KB