mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@kernel.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>,
	LKML <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"David S. Miller" <davem@davemloft.net>,
	Tony Luck <tony.luck@intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Chris Zankel <chris@zankel.net>,
	Max Filippov <jcmvbkbc@gmail.com>,
	Davidlohr Bueso <dave@stgolabs.net>,
	Waiman Long <Waiman.Long@hpe.com>
Subject: Re: [PATCH 03/11] locking, rwsem: introduce basis for down_write_killable
Date: Thu, 12 May 2016 14:19:07 +0200	[thread overview]
Message-ID: <20160512121907.GG4200@dhcp22.suse.cz> (raw)
In-Reply-To: <20160512121204.GQ3192@twins.programming.kicks-ass.net>

On Thu 12-05-16 14:12:04, Peter Zijlstra wrote:
> On Wed, May 11, 2016 at 08:03:46PM +0200, Michal Hocko wrote:
> > I still cannot say I would understand why the pending
> > RWSEM_WAITING_BIAS matters but I would probably need to look at the code
> > again with a clean head, __rwsem_wake is quite tricky...
> 
> Ah, you're asking why an unconditional __rwsem_wake(ANY) isn't enough?
> 
> Because; if at that point there's nobody waiting, we're left with an
> empty list and WAITER_BIAS set. This in turn will make all fast paths
> fail.
> 
> Look at rwsem_down_read_failed() for instance; if we enter that we'll
> unconditionally queue ourself, with nobody left to come wake us.

This is still not clear to me because rwsem_down_read_failed will call
__rwsem_do_wake if the count is RWSEM_WAITING_BIAS so we shouldn't go to
sleep and get the lock. So you are right that we would force everybody
to the slow path which is not great but shouldn't cause incorrect
behavior. I guess I must be missing something obvious here...
-- 
Michal Hocko
SUSE Labs

  reply	other threads:[~2016-05-12 12:19 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-01 11:04 [PATCH 0/11] introduce down_write_killable for rw_semaphore v2 Michal Hocko
2016-04-01 11:04 ` [PATCH 01/11] locking, rwsem: get rid of __down_write_nested Michal Hocko
2016-04-02  0:28   ` Davidlohr Bueso
2016-04-01 11:04 ` [PATCH 02/11] locking, rwsem: drop explicit memory barriers Michal Hocko
2016-04-02  1:17   ` Davidlohr Bueso
2016-04-04  9:03     ` Michal Hocko
2016-04-04  9:06       ` [PATCH 1/2] xtensa, rwsem: drop superfluous arch specific implementation Michal Hocko
2016-04-04  9:06         ` [PATCH 2/2] sh, " Michal Hocko
2016-04-06  9:26           ` Peter Zijlstra
2016-04-06  9:50             ` Geert Uytterhoeven
2016-04-06 10:27               ` Peter Zijlstra
2016-04-04 10:23         ` [PATCH 1/2] xtensa, " Max Filippov
2016-04-06  9:06     ` [PATCH] sparc, " Michal Hocko
2016-04-01 11:04 ` [PATCH 03/11] locking, rwsem: introduce basis for down_write_killable Michal Hocko
2016-04-02  4:41   ` Davidlohr Bueso
2016-04-04  9:17     ` Michal Hocko
2016-04-04  9:21       ` Peter Zijlstra
2016-04-07  6:58       ` Davidlohr Bueso
2016-04-07  7:38         ` Michal Hocko
2016-05-10 10:43   ` Tetsuo Handa
2016-05-10 11:53     ` Michal Hocko
2016-05-10 12:38       ` Peter Zijlstra
2016-05-10 13:57         ` Tetsuo Handa
2016-05-11  7:23         ` Michal Hocko
2016-05-11  8:28           ` Michal Hocko
2016-05-11  8:44             ` Peter Zijlstra
2016-05-11  9:04               ` Michal Hocko
2016-05-11  9:17                 ` Peter Zijlstra
2016-05-11  9:31                   ` Michal Hocko
2016-05-11  9:41                     ` Peter Zijlstra
2016-05-11 13:59                       ` Michal Hocko
2016-05-11 18:03                         ` Michal Hocko
2016-05-12 11:57                           ` [PATCH] locking, rwsem: Fix down_write_killable() Peter Zijlstra
2016-05-12 12:15                             ` [tip:locking/rwsem] locking/rwsem: " tip-bot for Peter Zijlstra
2016-05-12 16:59                             ` [PATCH] locking, rwsem: " Michal Hocko
2016-05-15 20:57                             ` [tip:locking/rwsem] locking/rwsem: " tip-bot for Peter Zijlstra
2016-05-12 12:12                           ` [PATCH 03/11] locking, rwsem: introduce basis for down_write_killable Peter Zijlstra
2016-05-12 12:19                             ` Michal Hocko [this message]
2016-05-12 13:58                               ` Peter Zijlstra
2016-05-12 19:42                               ` Waiman Long
2016-05-11  8:35           ` Peter Zijlstra
2016-05-11  9:02             ` Michal Hocko
2016-04-01 11:04 ` [PATCH 04/11] alpha, rwsem: provide __down_write_killable Michal Hocko
2016-04-01 11:04 ` [PATCH 05/11] ia64, " Michal Hocko
2016-04-01 11:04 ` [PATCH 06/11] s390, " Michal Hocko
2016-04-01 11:04 ` [PATCH 07/11] sh, " Michal Hocko
2016-04-01 11:04 ` [PATCH 08/11] sparc, " Michal Hocko
2016-04-01 11:04 ` [PATCH 09/11] xtensa, " Michal Hocko
2016-04-01 11:04 ` [PATCH 10/11] x86, " Michal Hocko
2016-04-06 18:31   ` Peter Zijlstra
2016-04-01 11:04 ` [PATCH 11/11] locking, rwsem: provide down_write_killable Michal Hocko
  -- strict thread matches above, loose matches on Subject: below --
2016-02-29 12:58 [PATCH 0/11] introduce down_write_killable for rw_semaphore Michal Hocko
2016-02-29 12:58 ` [PATCH 03/11] locking, rwsem: introduce basis for down_write_killable Michal Hocko
2016-03-30 13:25   ` Peter Zijlstra
2016-03-31  8:33     ` Michal Hocko
2016-03-31  8:44       ` Peter Zijlstra

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=20160512121907.GG4200@dhcp22.suse.cz \
    --to=mhocko@kernel.org \
    --cc=Waiman.Long@hpe.com \
    --cc=akpm@linux-foundation.org \
    --cc=chris@zankel.net \
    --cc=dave@stgolabs.net \
    --cc=davem@davemloft.net \
    --cc=hpa@zytor.com \
    --cc=jcmvbkbc@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=penguin-kernel@I-love.SAKURA.ne.jp \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®