* [PATCH] set request fastfail bit
@ 2004-03-10 6:39 Mike Christie
2004-03-10 6:57 ` Mike Christie
2004-03-10 9:02 ` Jens Axboe
0 siblings, 2 replies; 3+ messages in thread
From: Mike Christie @ 2004-03-10 6:39 UTC (permalink / raw)
To: Linux Kernel, Jens Axboe
[-- Attachment #1: Type: text/plain, Size: 329 bytes --]
The first three bio and request flags are no longer identical.
The bio barrier and rw flags are getting set in __make_request
and get_request respectively, and failfast is getting
left out. The attached patch (built against 2.6.4-rc3)
sets the request's failfast flag in __make_request when the bio's
flag is set.
Mike Chrisite
[-- Attachment #2: failfast.patch --]
[-- Type: text/plain, Size: 943 bytes --]
--- linux-2.6.4-rc3-orig/drivers/block/ll_rw_blk.c 2004-03-09 22:21:26.819208694 -0800
+++ linux-2.6.4-rc3-ff/drivers/block/ll_rw_blk.c 2004-03-09 22:37:02.395169904 -0800
@@ -2121,11 +2121,14 @@ get_rq:
goto again;
}
+ req->flags |= REQ_CMD;
+
/*
- * first three bits are identical in rq->flags and bio->bi_rw,
- * see bio.h and blkdev.h
+ * inherit FAILFAST from bio and don't stack up
+ * retries for read ahead
*/
- req->flags = (bio->bi_rw & 7) | REQ_CMD;
+ if (ra || test_bit(BIO_RW_FAILFAST, &bio->bi_rw))
+ req->flags |= REQ_FAILFAST;
/*
* REQ_BARRIER implies no merging, but lets make it explicit
@@ -2133,12 +2136,6 @@ get_rq:
if (barrier)
req->flags |= (REQ_HARDBARRIER | REQ_NOMERGE);
- /*
- * don't stack up retries for read ahead
- */
- if (ra)
- req->flags |= REQ_FAILFAST;
-
req->errors = 0;
req->hard_sector = req->sector = sector;
req->hard_nr_sectors = req->nr_sectors = nr_sectors;
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] set request fastfail bit
2004-03-10 6:39 [PATCH] set request fastfail bit Mike Christie
@ 2004-03-10 6:57 ` Mike Christie
2004-03-10 9:02 ` Jens Axboe
1 sibling, 0 replies; 3+ messages in thread
From: Mike Christie @ 2004-03-10 6:57 UTC (permalink / raw)
To: Linux Kernel, Jens Axboe
Mike Christie wrote:
> The first three bio and request flags are no longer identical.
> The bio barrier and rw flags are getting set in __make_request
^^^
That should have said request not bio.
> and get_request respectively, and failfast is getting
> left out. The attached patch (built against 2.6.4-rc3)
> sets the request's failfast flag in __make_request when the bio's
> flag is set.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] set request fastfail bit
2004-03-10 6:39 [PATCH] set request fastfail bit Mike Christie
2004-03-10 6:57 ` Mike Christie
@ 2004-03-10 9:02 ` Jens Axboe
1 sibling, 0 replies; 3+ messages in thread
From: Jens Axboe @ 2004-03-10 9:02 UTC (permalink / raw)
To: Mike Christie; +Cc: Linux Kernel
On Tue, Mar 09 2004, Mike Christie wrote:
> The first three bio and request flags are no longer identical.
> The bio barrier and rw flags are getting set in __make_request
> and get_request respectively, and failfast is getting
> left out. The attached patch (built against 2.6.4-rc3)
> sets the request's failfast flag in __make_request when the bio's
> flag is set.
>
> Mike Chrisite
> --- linux-2.6.4-rc3-orig/drivers/block/ll_rw_blk.c 2004-03-09 22:21:26.819208694 -0800
> +++ linux-2.6.4-rc3-ff/drivers/block/ll_rw_blk.c 2004-03-09 22:37:02.395169904 -0800
> @@ -2121,11 +2121,14 @@ get_rq:
> goto again;
> }
>
> + req->flags |= REQ_CMD;
> +
> /*
> - * first three bits are identical in rq->flags and bio->bi_rw,
> - * see bio.h and blkdev.h
> + * inherit FAILFAST from bio and don't stack up
> + * retries for read ahead
> */
> - req->flags = (bio->bi_rw & 7) | REQ_CMD;
> + if (ra || test_bit(BIO_RW_FAILFAST, &bio->bi_rw))
> + req->flags |= REQ_FAILFAST;
>
> /*
> * REQ_BARRIER implies no merging, but lets make it explicit
> @@ -2133,12 +2136,6 @@ get_rq:
> if (barrier)
> req->flags |= (REQ_HARDBARRIER | REQ_NOMERGE);
>
> - /*
> - * don't stack up retries for read ahead
> - */
> - if (ra)
> - req->flags |= REQ_FAILFAST;
> -
> req->errors = 0;
> req->hard_sector = req->sector = sector;
> req->hard_nr_sectors = req->nr_sectors = nr_sectors;
Thanks Mike, patch looks good.
--
Jens Axboe
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2004-03-10 9:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-03-10 6:39 [PATCH] set request fastfail bit Mike Christie
2004-03-10 6:57 ` Mike Christie
2004-03-10 9:02 ` Jens Axboe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).