Messages in this thread | | | Subject | Re: [PATCH v8 5/9] MCS Lock: Restructure the MCS lock defines and locking code into its own file | From | Tim Chen <> | Date | Tue, 08 Oct 2013 13:34:55 -0700 |
| |
On Tue, 2013-10-08 at 16:51 -0300, Rafael Aquini wrote: > On Wed, Oct 02, 2013 at 03:38:32PM -0700, Tim Chen wrote: > > We will need the MCS lock code for doing optimistic spinning for rwsem. > > Extracting the MCS code from mutex.c and put into its own file allow us > > to reuse this code easily for rwsem. > > > > Reviewed-by: Ingo Molnar <mingo@elte.hu> > > Reviewed-by: Peter Zijlstra <peterz@infradead.org> > > Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com> > > Signed-off-by: Davidlohr Bueso <davidlohr@hp.com> > > --- > > include/linux/mcs_spinlock.h | 64 ++++++++++++++++++++++++++++++++++++++++++ > > include/linux/mutex.h | 5 ++- > > kernel/mutex.c | 60 ++++---------------------------------- > > 3 files changed, 74 insertions(+), 55 deletions(-) > > create mode 100644 include/linux/mcs_spinlock.h > > > > diff --git a/include/linux/mcs_spinlock.h b/include/linux/mcs_spinlock.h > > new file mode 100644 > > index 0000000..b5de3b0 > > --- /dev/null > > +++ b/include/linux/mcs_spinlock.h > > @@ -0,0 +1,64 @@ > > +/* > > + * MCS lock defines > > + * > > + * This file contains the main data structure and API definitions of MCS lock. > > + * > > + * The MCS lock (proposed by Mellor-Crummey and Scott) is a simple spin-lock > > + * with the desirable properties of being fair, and with each cpu trying > > + * to acquire the lock spinning on a local variable. > > + * It avoids expensive cache bouncings that common test-and-set spin-lock > > + * implementations incur. > > + */ > > nitpick: > > I believe you need > > +#include <asm/processor.h> > > here, to avoid breaking the build when arch_mutex_cpu_relax() is not defined > (arch/s390 is one case)
Probably
+#include <linux/mutex.h>
should be added instead? It defines arch_mutex_cpu_relax when there's no architecture specific version.
Thanks. Tim
| |