Re: [RFC PATCH] wfcqueue: implement __wfcq_enqueue_head() (v3)

2013-04-07 Thread Eric Wong
Mathieu Desnoyers wrote: > Changes since v2: > * Only issue cmpxchg() if queue was empty. > * Add missing memory barrier. Thanks! There's a slight drop in performance either from the barrier or larger code, but I'm not worried (it was around 9-10s before wfcqueue). $ time ./eponeshotmt -c

[RFC PATCH] wfcqueue: implement __wfcq_enqueue_head() (v3)

2013-04-07 Thread Mathieu Desnoyers
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

[RFC PATCH] wfcqueue: implement __wfcq_enqueue_head() (v3)

2013-04-07 Thread Mathieu Desnoyers
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

Re: [RFC PATCH] wfcqueue: implement __wfcq_enqueue_head() (v3)

2013-04-07 Thread Eric Wong
Mathieu Desnoyers mathieu.desnoy...@efficios.com wrote: Changes since v2: * Only issue cmpxchg() if queue was empty. * Add missing memory barrier. Thanks! There's a slight drop in performance either from the barrier or larger code, but I'm not worried (it was around 9-10s before wfcqueue). $