• Martin Schwidefsky's avatar
    s390/spinlock,rwlock: always to a load-and-test first · bae8f567
    Martin Schwidefsky authored
    In case a lock is contended it is better to do a load-and-test first
    before trying to get the lock with compare-and-swap. This helps to avoid
    unnecessary cache invalidations of the cacheline for the lock if the
    CPU has to wait for the lock. For an uncontended lock doing the
    compare-and-swap directly is a bit better, if the CPU does not have the
    cacheline in its cache yet the compare-and-swap will get it read-write
    immediately while a load-and-test would get it read-only first.
    
    Always to the load-and-test first to avoid the cacheline invalidations
    for the contended case outweight the potential read-only to read-write
    cacheline upgrade for the uncontended case.
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    bae8f567
spinlock.c 4.25 KB