23.09.2016 19:56, Waiman Long пишет:
When running certain database workload on a high-end system with many CPUs, it was found that spinlock contention in the sigprocmask syscalls became a significant portion of the overall CPU cycles as shown below.
Hi, I was recently facing the same problem, and my solution was to extract swapcontext() from libtask - it has better semantic and does not do sigprocmask. How much you hack sigprocmask, it is still faster to just not call it at all. Alternatively, perhaps the speed-up can be achieved if the current mask is exported to glibc via vdso. Just my 2 cents.