lkml.org 
[lkml]   [2007]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH for review] [19/48] i386: add cpu_relax() to cmos_lock()
    Date

    From: Andreas Mohr <andi@lisas.de>

    Add cpu_relax() to cmos_lock() inline function for faster operation on SMT
    CPUs and less power consumption on others in case of lock contention (which
    probably doesn't happen too often, so admittedly this patch is not too
    exciting).

    [akpm@linux-foundation.org: Include the header file for cpu_relax()]
    Signed-off-by: Andreas Mohr <andi@lisas.de>
    Signed-off-by: Andi Kleen <ak@suse.de>
    Cc: Andi Kleen <ak@suse.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    ---

    include/asm-i386/mc146818rtc.h | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    Index: linux/include/asm-i386/mc146818rtc.h
    ===================================================================
    --- linux.orig/include/asm-i386/mc146818rtc.h
    +++ linux/include/asm-i386/mc146818rtc.h
    @@ -6,6 +6,7 @@

    #include <asm/io.h>
    #include <asm/system.h>
    +#include <asm/processor.h>
    #include <linux/mc146818rtc.h>

    #ifndef RTC_PORT
    @@ -43,8 +44,10 @@ static inline void lock_cmos(unsigned ch
    unsigned long new;
    new = ((smp_processor_id()+1) << 8) | reg;
    for (;;) {
    - if (cmos_lock)
    + if (cmos_lock) {
    + cpu_relax();
    continue;
    + }
    if (__cmpxchg(&cmos_lock, 0, new, sizeof(cmos_lock)) == 0)
    return;
    }
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-07-19 16:01    [W:0.019 / U:34.532 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site