public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: William Lee Irwin III <wli@holomorphy.com>
To: Martin Wilck <martin.wilck@fujitsu-siemens.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [1/4] standardize bit waiting data type
Date: Fri, 3 Sep 2004 02:42:47 -0700	[thread overview]
Message-ID: <20040903094247.GP3106@holomorphy.com> (raw)
In-Reply-To: <41383F33.4050503@fujitsu-siemens.com>

William Lee Irwin III wrote:
>>+	prepare_to_wait(wqh, &wait.wait, TASK_UNINTERRUPTIBLE);
>>+	if (buffer_locked(bh)) {
>>+		sync_buffer(bh);
>>+		io_schedule();
>>+	}
>> 	finish_wait(wqh, &wait.wait);
>> }

On Fri, Sep 03, 2004 at 11:53:55AM +0200, Martin Wilck wrote:
> Why don't you need a do..while loop any more ?
> There is also no loop in __wait_on_bit() in the completed patch series.

Part of the point of filtered waitqueues is to reestablish wake-one
semantics. This means two things:
(a) those waiting merely for a bit to clear with no need to set it,
	i.e. all they want is to know a transition from set to
	clear occurred, are only woken once and don't need to loop
	waking and sleeping
(b) Of those tasks waiting for a bit to clear so they can set it
	exclusively, only one needs to be woken, and after the first
	is woken, it promises to clear the bit again, so there is no
	need to wake more tasks.

These two aspects of wake-one semantics give it highly attractive
performance characteristics.


-- wli

  reply	other threads:[~2004-09-03  9:45 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <2xoKb-2Pa-27@gated-at.bofh.it>
     [not found] ` <2y3X5-73V-37@gated-at.bofh.it>
     [not found]   ` <2y46A-798-17@gated-at.bofh.it>
     [not found]     ` <2y4T1-7GM-17@gated-at.bofh.it>
     [not found]       ` <2y52E-7Li-11@gated-at.bofh.it>
     [not found]         ` <2y5ci-7Qz-7@gated-at.bofh.it>
     [not found]           ` <2y5m3-7VH-5@gated-at.bofh.it>
     [not found]             ` <2y7Hd-1aP-21@gated-at.bofh.it>
2004-09-03  9:53               ` [1/4] standardize bit waiting data type Martin Wilck
2004-09-03  9:42                 ` William Lee Irwin III [this message]
2004-09-03  9:55                   ` William Lee Irwin III
2004-08-26  8:47 2.6.9-rc1-mm1 Andrew Morton
2004-08-28  5:26 ` [0/4] standardized waitqueue hashing William Lee Irwin III
2004-08-28  5:31   ` [1/4] standardize bit waiting data type William Lee Irwin III
2004-08-28  6:17     ` Andrew Morton
2004-08-28  6:34       ` William Lee Irwin III
2004-08-28  6:40         ` Andrew Morton
2004-08-28  6:48           ` William Lee Irwin III
2004-08-28  9:20             ` William Lee Irwin III
2004-08-28  9:18     ` Christoph Hellwig
2004-08-28  9:20       ` William Lee Irwin III

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=20040903094247.GP3106@holomorphy.com \
    --to=wli@holomorphy.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin.wilck@fujitsu-siemens.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