matthew sporleder wrote:
What do you think your chances are at getting --with-mutex=POSIX/pthread made the default? If not very good, it might be worth mentioning in openldap docs if it's that much of a performance gain.
It's too early to tell yet. We're still working on identifying why the hybrid mutex scheme performs so poorly. In fact the hybrid scheme has been around for a long time, in several other BDB releases. But somewhere along the line in 4.6 they changed the actual sequence of assembly language instructions used on x86 (to correct a bug). It's possible that the old sequence was always broken, so it never performed any actual locking in prior releases, or that the new sequence is broken, or that the new sequence is working as designed, but is just causing more bus contention than expected.
Testing on other platforms may help pinpoint the problem. In general though, I think current Linux kernels already have an extremely efficient mutex implementation, so there's not much point in using the assembly language spinlock here.