Mathieu Desnoyers <[email protected]> wrote: > Implement enqueue-to-head. It can run concurrently with enqueue, splice > to queue, and iteration, but requires a mutex against dequeue and splice > from queue operations. > > Useful for special-cases where a queue needs to have nodes enqueued into > its head. > > This patch is only compile-tested. > > Changes since v1: > * Don't require mutual exclusion between traversals and > __wfcq_enqueue_head(). > > Signed-off-by: Mathieu Desnoyers <[email protected]>
Thanks! The first hunk (sync table comment) conflicted with my __wfcq_enqueue patch, but other than that I could not benchmark any regression with my 4-core machine with v4 of my "epoll: avoid spinlock contention with wfcqueue" patch. All I needed was "s/__wfcq_prepend/__wfcq_enqueue_head/g" to my original patch to use the updated API. I was worried about the cmpxchg at first, but it does not seem to hurt performance on my 4-core system. In fact, it was slightly better (but within margin of error) time ./eponeshotmt -c 1000000 -w 4 -t 4 -f 10 real 0m 5.78s user 0m 1.20s sys 0m 21.90s Tested-by: Eric Wong <[email protected]> Hopefully somebody can test my epoll patches with more cores/threads :) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

