From mboxrd@z Thu Jan 1 00:00:00 1970 From: mathieu.desnoyers@efficios.com (Mathieu Desnoyers) Date: Tue, 2 Oct 2012 10:13:07 -0400 Subject: [lttng-dev] [URCU PATCH 0/3] wait-free concurrent queues (wfcqueue) Message-ID: <20121002141307.GA4057@Krystal> Implement wait-free concurrent queues, with a new API different from wfqueue.h, which is already provided by Userspace RCU. The advantage of splitting the head and tail objects of the queue into different arguments is to allow these to sit on different cache-lines, thus eliminating false-sharing, leading to a 2.3x speed increase. This API also introduces a "splice" operation, which moves all nodes from one queue into another, and postpones the synchronization to either dequeue or iteration on the list. The splice operation does not need to touch every single node of the queue it moves them from. Moreover, the splice operation only needs to ensure mutual exclusion with other dequeuers, iterations, and splice operations from the list it splices from, but acts as a simple enqueuer on the list it splices into (no mutual exclusion needed for that list). Feedback is welcome, Thanks! Mathieu -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com