• Bruce Momjian's avatar
    Tom Lane wrote: · be582825
    Bruce Momjian authored
    > > For a while I though it might be because we are using an alpha TAS in
    > > the spinlock rather than the old semaphore. I replaced our spinlock
    > > with the standard one and it made no difference. We have been running
    > > with our spinlock implementation for nearly 2 months on a production
    > > database now without a hitch, so I think it is ok. Did I ever submit
    > > any patches for the Alpha spinlock?
    >
    > Not that I recall.  We did get some advice from some Alpha gurus at DEC
    > who seemed to think the existing TAS code is OK.  What was it that you
    > felt needed to be improved?
    
    The current code uses semaphores, which has the advantage that it works
    well even on multi-processor machines, but the disadvantage that it is not
    the fastest way possible. Writing a spinlock on Alpha for SMP machines is
    very difficult, as you need to deal with memory barriers. A real mess. But
    then one of the people at Compaq pointed out to us that there is a
    ready-made routine on Alpha. We implemented it with the two patches below.
    I ran tests with lots of parallel back-ends and got around a 10% speed
    increase. I include the two patches. Perhaps some of the other people
    running Tru64 can have a look at these as well.
    
    Cheers,
    
    Adriaan Joubert
    be582825
s_lock.h 9.64 KB