* Eric Wong ([email protected]) wrote: > 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 :)
Thanks for testing. Taking care of your comments, and of memory barriers, brings me to send a v3 of this patch shortly. Testing is welcome! Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com -- 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/

