[lkml]   [2001]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: SMP spin-locks
    On Thursday 14 June 2001 23:05, you wrote:
    > On Thu, 14 Jun 2001, Roger Larsson wrote:
    > > Hi,
    > >
    > > Wait a minute...
    > >
    > > Spinlocks on a embedded system? Is it _really_ SMP?
    > The embedded system is not SMP. However, there is definite
    > advantage to using an unmodified kernel that may/may-not
    > have been compiled for SMP. Of course spin-locks are used
    > to prevent interrupts from screwing up buffer pointers, etc.

    Not really - it prevents another processor entering the same code
    segment (spin_lock_irqsave prevents both another processor and
    local interrupts).

    An interrupt on UP can not wait on a spin lock - it will never be released
    since no other code than the interrupt spinning will be able to execute)

    > > What kind of performance problem do you have?
    > The problem is that a data acquisition board across the PCI bus
    > gives a data transfer rate of 10 to 11 megabytes per second
    > with a UP kernel, and the transfer drops to 5-6 megabytes per
    > second with a SMP kernel. The ISR is really simple and copies
    > data, that's all.
    > The 'read()' routine uses a spinlock when it modifies pointers.
    > I started to look into where all the CPU clocks were going. The
    > SMP spinlock code is where it's going. There is often contention
    > for the lock because interrupts normally occur at 50 to 60 kHz.

    SMP compiled kernel, but running on UP hardware - right?
    Then this _should not_ happen!

    see linux/Documentation/spinlocks.txt

    Is it your spinlocks that are causing this, or?

    > When there is contention, a very long........jump occurs into
    > the test.lock segment. I think this is flushing queues.

    It does not matter, if there is contention - let it take time. Waiting is what
    spinlocking is about anyway...


    Roger Larsson
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 12:55    [W:0.028 / U:148.312 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site