public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Nick Piggin <piggin@cyberone.com.au>
To: Linus Torvalds <torvalds@osdl.org>, Andrew Morton <akpm@osdl.org>,
	Jens Axboe <axboe@kernel.dk>
Cc: linux-kernel <linux-kernel@vger.kernel.org>
Subject: [PATCH] fix IO hangs
Date: Fri, 05 Sep 2003 16:56:58 +1000	[thread overview]
Message-ID: <3F5833BA.5090909@cyberone.com.au> (raw)

[-- Attachment #1: Type: text/plain, Size: 788 bytes --]

Hi, sorry for the hangs, everyone. I think I have it worked out, but
testers and an ack from Jens would be good.

The insert_here code now does as advertised. The big difference being
that regular blk_fs_requests will be subject to it (required for SCSI
requeue). Unfortunately ll_rw_blk.c misuses it and will sometimes try
to insert at requests which are not on the dispatch list, causing the
badness.

It looks like the code was maybe used to provide an insertion hint
for the elevator. The RB tree has now eliminated that requirement even
if the code did work. Which it doesn't.

I can't reproduce the hangs with this patch. Please test.


Aside, insert_here really seems to be quite dangerous to me. I think
combination of barriers and an "insert at start/end" flag would be
enough.


[-- Attachment #2: elv-insert_here-fix --]
[-- Type: text/plain, Size: 379 bytes --]

--- archs/linux-2.6/drivers/block/ll_rw_blk.c	2003-09-05 16:46:02.000000000 +1000
+++ linux-2.6/drivers/block/ll_rw_blk.c	2003-09-05 16:35:39.000000000 +1000
@@ -2060,7 +2060,7 @@ get_rq:
 	req->rq_disk = bio->bi_bdev->bd_disk;
 	req->start_time = jiffies;
 
-	add_request(q, req, insert_here);
+	add_request(q, req, NULL);
 out:
 	if (freereq)
 		__blk_put_request(q, freereq);

             reply	other threads:[~2003-09-05  6:57 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-05  6:56 Nick Piggin [this message]
2003-09-05  7:04 ` [PATCH] fix IO hangs Jens Axboe
2003-09-05  7:16   ` Nick Piggin
2003-09-05  7:18     ` Jens Axboe
2003-09-05  8:31       ` Jens Axboe
2003-09-05 22:03         ` Martin Schlemmer
2003-09-06  1:34           ` Nick Piggin

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=3F5833BA.5090909@cyberone.com.au \
    --to=piggin@cyberone.com.au \
    --cc=akpm@osdl.org \
    --cc=axboe@kernel.dk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@osdl.org \
    /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