"Tom Lane" <tgl@sss.pgh.pa.us> wrote
>
> So I'm thinking the right answer is to make all the spinlock macros be
> the equivalent of the NoHoldoff case. It's reasonable for LWLockAcquire
> to do a HOLD_INTERRUPTS, but I don't see the justification for doing it
> at the spinlock level.
>
I agree on this. But before changing it, we need to inspect those spinlocks
one by one to making sure two things (1) if there is out-of-line-call, make
sure no CHECK_FOR_INTERRUPTS(); (2) ImmediateInterruptsOK is false (99% sure
now).
>
> I'm a bit worried about doing that across-the-board, since at least in
> theory a vendor-supplied qsort ought to be tuned for the hardware et al.
> I think it would be better to substitute our own qsort only on those
> platforms where we have specifically proved it's a win.
>
Our tests indicates that BSD version is better ... but it is just a
home-brew test.
Regards,
Qingqing