All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Low <jason.low2@hp.com>
To: Davidlohr Bueso <davidlohr@hp.com>
Cc: peterz@infradead.org, mingo@kernel.org, mpatocka@redhat.com,
	torvalds@linux-foundation.org, waiman.long@hp.com,
	jejb@parisc-linux.org, paulmck@linux.vnet.ibm.com,
	dave.anglin@bell.net, aswin@hp.com, linux-kernel@vger.kernel.org,
	linux-parisc@vger.kernel.org
Subject: Re: [PATCH 1/2] locking/rwsem: Add CONFIG_RWSEM_SPIN_ON_OWNER
Date: Fri, 06 Jun 2014 12:08:46 -0700	[thread overview]
Message-ID: <1402081726.6680.61.camel@j-VirtualBox> (raw)
In-Reply-To: <1402080497.14433.8.camel@buesod1.americas.hpqcorp.net>

On Fri, 2014-06-06 at 11:48 -0700, Davidlohr Bueso wrote:
> On Fri, 2014-06-06 at 11:12 -0700, Davidlohr Bueso wrote:
> > On Fri, 2014-06-06 at 10:13 -0700, Jason Low wrote:
> > > On Fri, 2014-06-06 at 08:55 -0700, Davidlohr Bueso wrote:
> > > > Just like with mutexes (CONFIG_MUTEX_SPIN_ON_OWNER),
> > > > encapsulate the dependencies for rwsem optimistic spinning.
> > > > No logical changes here as it continues to depend on both
> > > > SMP and the XADD algorithm variant.
> > > > 
> > > > Signed-off-by: Davidlohr Bueso <davidlohr@hp.com>
> > > > ---
> > > >  include/linux/rwsem.h  | 4 ++--
> > > >  kernel/Kconfig.locks   | 4 ++++
> > > >  kernel/locking/rwsem.c | 2 +-
> > > >  3 files changed, 7 insertions(+), 3 deletions(-)
> > > 
> > > Do we also want to add an #ifdef CONFIG_RWSEM_SPIN_ON_OWNER in
> > > __init_rwsem() and in the optimistic spinning functions for rwsem-xadd?
> > > 
> > 
> > Not really, as we conditionally build rwsem-xadd.o based on
> > CONFIG_RWSEM_XCHGADD_ALGORITHM:
> > 
> > obj-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o
> > obj-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += rwsem-xadd.o
> > 
> > So leaving just SMP is ok there.
> 
> Of course that's bogus when we add more dependencies (ie 2/2), so yeah,
> we need to add the whole CONFIG_RWSEM_SPIN_ON_OWNER option.
> 
> Thanks.

> diff --git a/kernel/locking/rwsem-xadd.c b/kernel/locking/rwsem-xadd.c
> index dacc321..f6b5b96 100644
> --- a/kernel/locking/rwsem-xadd.c
> +++ b/kernel/locking/rwsem-xadd.c
> @@ -82,7 +82,7 @@ void __init_rwsem(struct rw_semaphore *sem, const char *name,
>  	sem->count = RWSEM_UNLOCKED_VALUE;
>  	raw_spin_lock_init(&sem->wait_lock);
>  	INIT_LIST_HEAD(&sem->wait_list);
> -#ifdef CONFIG_SMP
> +#ifdef CONFIG_RWSEM_SPIN_ON_OWNER
>  	sem->owner = NULL;
>  	sem->osq = NULL;
>  #endif

And should we also change that in the optimistic spinning functions so
that it defaults to:

	static bool rwsem_optimistic_spin(struct rw_semaphore *sem)
	{
        	return false;
	}

in the !CONFIG_RWSEM_SPIN_ON_OWNER case.

Thanks.

> diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c
> index 42f806d..e2d3bc7 100644
> --- a/kernel/locking/rwsem.c
> +++ b/kernel/locking/rwsem.c
> @@ -12,7 +12,7 @@
>  
>  #include <linux/atomic.h>
>  
> -#if defined(CONFIG_SMP) && defined(CONFIG_RWSEM_XCHGADD_ALGORITHM)
> +#ifdef CONFIG_RWSEM_SPIN_ON_OWNER
>  static inline void rwsem_set_owner(struct rw_semaphore *sem)
>  {
>  	sem->owner = current;

  reply	other threads:[~2014-06-06 19:08 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-06 15:55 [PATCH 0/2] locking/rwsem: disable optimistic spinning for PA-RISC Davidlohr Bueso
2014-06-06 15:55 ` [PATCH 1/2] locking/rwsem: Add CONFIG_RWSEM_SPIN_ON_OWNER Davidlohr Bueso
2014-06-06 17:13   ` Jason Low
2014-06-06 18:12     ` Davidlohr Bueso
2014-06-06 18:48       ` Davidlohr Bueso
2014-06-06 19:08         ` Jason Low [this message]
2014-06-06 19:20           ` Davidlohr Bueso
2014-06-06 15:55 ` [PATCH 2/2] locking/rwsem: Disable optimistic spinning for PA-RISC Davidlohr Bueso
2014-06-06 16:09   ` James Bottomley
2014-06-06 17:11     ` Peter Zijlstra
2014-06-06 17:19       ` Chris Metcalf
2014-06-06 17:22       ` Linus Torvalds
2014-06-06 17:53         ` Peter Zijlstra
2014-06-06 17:57           ` James Bottomley
2014-06-06 17:58             ` James Bottomley
2014-06-06 18:01             ` Peter Zijlstra
2014-07-16 19:24           ` [tip:locking/urgent] locking/mutex: Disable optimistic spinning on some architectures tip-bot for Peter Zijlstra
2014-07-17 11:51             ` Christian Borntraeger
2014-07-17 11:58               ` Christian Borntraeger
2014-07-18  3:07             ` Davidlohr Bueso
2014-07-18  3:10               ` Davidlohr Bueso

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1402081726.6680.61.camel@j-VirtualBox \
    --to=jason.low2@hp.com \
    --cc=aswin@hp.com \
    --cc=dave.anglin@bell.net \
    --cc=davidlohr@hp.com \
    --cc=jejb@parisc-linux.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=mpatocka@redhat.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=torvalds@linux-foundation.org \
    --cc=waiman.long@hp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.