Re: [RFC PATCH 1/3] lib: adding an Array-based Lock-Free (ALF) queue

2014-12-11 Thread David Miller
From: Jesper Dangaard Brouer Date: Wed, 10 Dec 2014 15:15:26 +0100 > +static inline int > +alf_mp_enqueue(const u32 n; > +struct alf_queue *q, void *ptr[n], const u32 n) > +{ ... > +/* Main Multi-Consumer DEQUEUE */ > +static inline int > +alf_mc_dequeue(const u32 n; > +

Re: [RFC PATCH 1/3] lib: adding an Array-based Lock-Free (ALF) queue

2014-12-11 Thread David Miller
From: Jesper Dangaard Brouer bro...@redhat.com Date: Wed, 10 Dec 2014 15:15:26 +0100 +static inline int +alf_mp_enqueue(const u32 n; +struct alf_queue *q, void *ptr[n], const u32 n) +{ ... +/* Main Multi-Consumer DEQUEUE */ +static inline int +alf_mc_dequeue(const u32 n; +

[RFC PATCH 1/3] lib: adding an Array-based Lock-Free (ALF) queue

2014-12-10 Thread Jesper Dangaard Brouer
This Array-based Lock-Free (ALF) queue, is a very fast bounded Producer-Consumer queue, supporting bulking. The MPMC (Multi-Producer/Multi-Consumer) variant uses a locked cmpxchg, but the cost can be amorized by utilizing bulk enqueue/dequeue. Results on x86_64 CPU E5-2695, for variants: MPMC =

[RFC PATCH 1/3] lib: adding an Array-based Lock-Free (ALF) queue

2014-12-10 Thread Jesper Dangaard Brouer
This Array-based Lock-Free (ALF) queue, is a very fast bounded Producer-Consumer queue, supporting bulking. The MPMC (Multi-Producer/Multi-Consumer) variant uses a locked cmpxchg, but the cost can be amorized by utilizing bulk enqueue/dequeue. Results on x86_64 CPU E5-2695, for variants: MPMC =