[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v5 1/8] qspinlock: Introducing a 4-byte queue spinlock implementation



On 02/26/2014 11:22 AM, Peter Zijlstra wrote:
On Wed, Feb 26, 2014 at 10:14:21AM -0500, Waiman Long wrote:

+struct qnode {
+       u32              wait;          /* Waiting flag         */
+       struct qnode    *next;          /* Next queue node addr */
+};
+
+struct qnode_set {
+       struct qnode    nodes[MAX_QNODES];
+       int             node_idx;       /* Current node to use */
+};
+
+/*
+ * Per-CPU queue node structures
+ */
+static DEFINE_PER_CPU_ALIGNED(struct qnode_set, qnset) = { {{0}}, 0 };
So I've not yet wrapped my head around any of this; and I see a later
patch adds some paravirt gunk to this, but it does blow you can't keep
it a single cacheline for the sane case.

There is a 4-byte hole in the qnode structure for x86-64. I did try to make the additional PV fields used only 4 bytes so that there is no increase in size in the qnode structure unless we need to support 16K CPUs or more.

-Longman

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.