lkml.org 
[lkml]   [2005]   [Dec]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch 1/3] mutex subsystem: trylock
    Ingo Molnar wrote:
    > * Nicolas Pitre <nico@cam.org> wrote:

    >>+ "1: ldrex %0, [%3] \n"
    >>+ "subs %1, %0, #1 \n"
    >>+ "strexeq %2, %1, [%3] \n"
    >>+ "movlt %0, #0 \n"
    >>+ "cmpeq %2, #0 \n"
    >>+ "bgt 1b \n"
    >
    >
    > so we are back to what is in essence a cmpxchg implementation?
    >

    FWIW, I still think we should go for an open-coded "cmpxchg" variant
    for UP that disables preempt, and an atomic_cmpxchg variant for SMP.

    - good generic implementations
    - the UP version is faster than atomic_xchg for non preempt on ARM
    - if you really are counting cycles, you'd probably have preempt off
    - if you've got preempt on then the preempt_ operations in semaphores
    would be the least of your worries (how about spinlocks?)

    Rather than straight out introducing lots of ugliness and complexity
    for something that actually slows down the speed critical !preempt
    case (but is unlikely to be measurable either way).

    --
    SUSE Labs, Novell Inc.

    Send instant messages to your online friends http://au.messenger.yahoo.com

    -
    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: 2005-12-29 10:04    [W:0.024 / U:0.024 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site