On Fri, 2012-12-21 at 18:56 -0500, Rik van Riel wrote: > Argh, the first one had a typo in it that did not influence > performance with fewer threads running, but that made things > worse with more than a dozen threads...
> + > + /* > + * The lock is still busy, the delay was not long enough. > + * Going through here 2.7 times will, on average, cancel > + * out the decrement above. Using a non-integer number > + * gets rid of performance artifacts and reduces oversleeping. > + */ > + if (delay < MAX_SPINLOCK_DELAY && > + ((inc.head & 3) == 0 || (inc.head & 7) == 1)) > + delay++; ((inc.head & 3) == 0 || (inc.head & 7) == 1)) seems a strange condition to me... -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/