Re: [PATCH v2 4/4] MCS Lock: Make mcs_spinlock.h includable in otherfiles

From: Waiman Long
Date: Wed Nov 06 2013 - 10:32:14 EST


On 11/05/2013 02:30 PM, Tim Chen wrote:
On Tue, 2013-11-05 at 19:57 +0100, Peter Zijlstra wrote:
On Tue, Nov 05, 2013 at 09:42:39AM -0800, Tim Chen wrote:
+ * The _raw_mcs_spin_lock() function should not be called directly. Instead,
+ * users should call mcs_spin_lock().
*/
-static noinline
-void mcs_spin_lock(struct mcs_spinlock **lock, struct mcs_spinlock *node)
+static inline
+void _raw_mcs_spin_lock(struct mcs_spinlock **lock, struct mcs_spinlock *node)
{
struct mcs_spinlock *prev;

So why keep it in the header at all?
I also made the suggestion originally of keeping both lock and unlock in
mcs_spinlock.c. Wonder if Waiman decides to keep them in header
because in-lining the unlock function makes execution a bit faster?

Tim


I was following the example of the spinlock code where the lock function is not inlined, but the unlock function is. I have no objection to make them both as non-inlined functions, if you think that is the right move.

Regards,
Longman
--
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/