On Wed, Nov 06, 2013 at 10:31:47AM -0500, Waiman Long wrote: > 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. I don't care, what I do find odd is the existence of _raw_mcs_spin_lock(). If you want to out-of-line it, just move the entire thing into a .c file already. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html