Re: spinlocks() are severely broken in 2.2.X and 2.4.X for modules

From: Manfred Spraul (manfred@colorfullife.com)
Date: Sat Jul 01 2000 - 09:37:07 EDT

  • Next message: Khimenko Victor: "Re: Low Latency Patch"

    Andi Kleen wrote:
    >
    > Here is a quick hack. The results are slightly off because of section
    > padding though. It only works on object files or modules (vmlinux doesn't
    > have any reloc records)
    >

    $SPINSIZE = 14;

    the .text.lock segment also contains semaphore & rwlock fixups.
    Could you/Jeff send me a broken module?

    If the wrong relocs really point into the wrong segment, then it should
    be easy to find them: the number of relocs from .text into .text.lock
    must be equal to the number of relocs from .text.lock back into .text.

    [test attached]
            ./mstest.sh `find -iname '*.o'`

    As expected these number always match in my kernel tree
    [gcc-2.95.3-0.20000517 + binutils 2.9.5.0.22-6 from redhat rawhide]

    Are you absolutely sure that broken fixup cause the SMP problems? A
    broken fixup within spinlock might cause hard crashes, continue as if
    the spinlock was acquired???

    --
    	Manfred
    
    

    - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Sat Jul 01 2000 - 09:42:35 EDT