lkml.org 
[lkml]   [2002]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: 2.5.36-mm1 dbench 512 profiles
    Hanna Linder wrote:
    >
    > ...
    > So akpm's removal of lock section directives breaks down the
    > functions holding locks that previously were reported under the
    > .text.lock.filename?

    Yup. It makes the profiler report the spinlock cost at the
    actual callsite. Patch below.

    > Looks like fastwalk might not behave so well
    > on this 32 cpu numa system...

    I've rather lost the plot. Have any of the dcache speedup
    patches been merged into 2.5?

    It would be interesting to know the context switch rate
    during this test, and to see what things look like with HZ=100.



    --- 2.5.24/include/asm-i386/spinlock.h~spinlock-inline Fri Jun 21 13:12:01 2002
    +++ 2.5.24-akpm/include/asm-i386/spinlock.h Fri Jun 21 13:18:12 2002
    @@ -46,13 +46,13 @@ typedef struct {
    "\n1:\t" \
    "lock ; decb %0\n\t" \
    "js 2f\n" \
    - LOCK_SECTION_START("") \
    + "jmp 3f\n" \
    "2:\t" \
    "cmpb $0,%0\n\t" \
    "rep;nop\n\t" \
    "jle 2b\n\t" \
    "jmp 1b\n" \
    - LOCK_SECTION_END
    + "3:\t" \

    /*
    * This works. Despite all the confusion.
    --- 2.5.24/include/asm-i386/rwlock.h~spinlock-inline Fri Jun 21 13:18:33 2002
    +++ 2.5.24-akpm/include/asm-i386/rwlock.h Fri Jun 21 13:22:09 2002
    @@ -22,25 +22,19 @@

    #define __build_read_lock_ptr(rw, helper) \
    asm volatile(LOCK "subl $1,(%0)\n\t" \
    - "js 2f\n" \
    - "1:\n" \
    - LOCK_SECTION_START("") \
    - "2:\tcall " helper "\n\t" \
    - "jmp 1b\n" \
    - LOCK_SECTION_END \
    + "jns 1f\n\t" \
    + "call " helper "\n\t" \
    + "1:\t" \
    ::"a" (rw) : "memory")

    #define __build_read_lock_const(rw, helper) \
    asm volatile(LOCK "subl $1,%0\n\t" \
    - "js 2f\n" \
    - "1:\n" \
    - LOCK_SECTION_START("") \
    - "2:\tpushl %%eax\n\t" \
    + "jns 1f\n\t" \
    + "pushl %%eax\n\t" \
    "leal %0,%%eax\n\t" \
    "call " helper "\n\t" \
    "popl %%eax\n\t" \
    - "jmp 1b\n" \
    - LOCK_SECTION_END \
    + "1:\t" \
    :"=m" (*(volatile int *)rw) : : "memory")

    #define __build_read_lock(rw, helper) do { \
    @@ -52,25 +46,19 @@

    #define __build_write_lock_ptr(rw, helper) \
    asm volatile(LOCK "subl $" RW_LOCK_BIAS_STR ",(%0)\n\t" \
    - "jnz 2f\n" \
    + "jz 1f\n\t" \
    + "call " helper "\n\t" \
    "1:\n" \
    - LOCK_SECTION_START("") \
    - "2:\tcall " helper "\n\t" \
    - "jmp 1b\n" \
    - LOCK_SECTION_END \
    ::"a" (rw) : "memory")

    #define __build_write_lock_const(rw, helper) \
    asm volatile(LOCK "subl $" RW_LOCK_BIAS_STR ",%0\n\t" \
    - "jnz 2f\n" \
    - "1:\n" \
    - LOCK_SECTION_START("") \
    - "2:\tpushl %%eax\n\t" \
    + "jz 1f\n\t" \
    + "pushl %%eax\n\t" \
    "leal %0,%%eax\n\t" \
    "call " helper "\n\t" \
    "popl %%eax\n\t" \
    - "jmp 1b\n" \
    - LOCK_SECTION_END \
    + "1:\n" \
    :"=m" (*(volatile int *)rw) : : "memory")

    #define __build_write_lock(rw, helper) do { \
    -
    -
    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-03-22 13:29    [W:0.026 / U:1.692 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site