Re: [RFC PATCH] Linux kernel Wait-Free Concurrent QueueImplementation

From: Peter Hurley
Date: Thu Mar 14 2013 - 20:50:01 EST


On Mon, 2013-03-11 at 17:36 -0400, Mathieu Desnoyers wrote:
> +/*
> + * Do not put head and tail on the same cache-line if concurrent
> + * enqueue/dequeue are expected from many CPUs. This eliminates
> + * false-sharing between enqueue and dequeue.
> + */
> +struct wfcq_head {
> + struct wfcq_node node;
> + struct mutex lock;
> +};
> +
> +struct wfcq_tail {
> + struct wfcq_node *p;
> +};


If you want to force separate cachelines for SMP, this would be

struct wfcq_head {
struct wfcq_node node;
struct mutex lock;
} ____cacheline_aligned_in_smp;

struct wfcq_tail {
struct wfcq_node *p;
} ____cacheline_aligned_in_smp;

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/