Add RISC-V CAS via load-reserved/store conditional
[akaros.git] / user / parlib / include / mcs.h
index e581333..624ca4e 100644 (file)
@@ -68,10 +68,14 @@ struct mcs_pdr_qnode
        uint32_t vcoreid;
 }__attribute__((aligned(ARCH_CL_SIZE)));
 
+/* Want to pad out so lock doesn't share a CL with qnodes.  If we align both
+ * pointers so that they have their own cache line, this actually performs
+ * worse.  Meaning (for some unknown reason), if the lock shares a CL with
+ * other random bss/data, the lock tests perf better... */
 struct mcs_pdr_lock
 {
        struct mcs_pdr_qnode *lock;
-       struct mcs_pdr_qnode *lock_holder;
+       char padding[ARCH_CL_SIZE];
        struct mcs_pdr_qnode *vc_qnodes;        /* malloc this at init time */
 };