From: Tejun Heo <htejun@gmail.com>
To: FUJITA Tomonori <tomof@acm.org>
Cc: jens.axboe@oracle.com, fujita.tomonori@lab.ntt.co.jp,
James.Bottomley@HansenPartnership.com, efault@gmx.de,
akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org,
jgarzik@pobox.com
Subject: Re: [PATCH] block: fix residual byte count handling
Date: Tue, 04 Mar 2008 07:44:13 +0900 [thread overview]
Message-ID: <47CC7F3D.4010605@gmail.com> (raw)
In-Reply-To: <20080303235207S.tomof@acm.org>
FUJITA Tomonori wrote:
> On Mon, 03 Mar 2008 23:22:46 +0900
> Tejun Heo <htejun@gmail.com> wrote:
>
>> FUJITA Tomonori wrote:
>>>> At the end of blk_rq_map_user() together with data_len / extra_len
>>>> mangling or were you talking about James' original patch?
>>> With my patch, at the end of blk_rq_map_user, we have:
>>>
>>> if (len & queue_dma_alignment(q)) {
>>> unsigned int pad_len = (queue_dma_alignment(q) & ~len) + 1;
>>>
>>> rq->extra_len += pad_len;
>>> }
>>>
>>>
>>> So no change as compared with 2.6.24?
>> Oh.. you killed sg list manipulation. Many controllers do allow odd
>> bytes as the last sg entry but not all. Also, if you append drain
>
> Until 2.6.24, these drivers have taken care about the issue by
> themselves. There is no change as compared with 2.6.24.
Yeah, libata did its own padding and needed to add draining. Private
implementation was complex as hell and James suggested moving them to
block layer. Are you suggesting moving them back to drivers?
>> buffer after it, it ends up with unaligned sg entry in the middle and
>> rq->data_len + rq->extra_len will overrun the sg entry after the drain
>> page which is really dangerous.
>
> The drivers know that they use drain buffer. They can take care about
> themselves on this too. If we want to do explicitly, we could have
> rq->pad_len and rq->drain_len instead of rq->extra_len, though I think
> that we are fine without these values because these drivers already
> tell the block layer what they want and know that the block layer
> gives it.
So, if a driver has requested aligning and draining, the driver should
extend the sg entry before the last one by the alignment if draining was
used for the request and extent the last sg if the draining wasn't used.
I'd rather just implement them in the drivers.
--
tejun
next prev parent reply other threads:[~2008-03-03 22:44 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1203583379.6244.27.camel@homer.simson.net>
[not found] ` <20080222073228.GZ23197@kernel.dk>
[not found] ` <1203752563.5225.4.camel@homer.simson.net>
[not found] ` <1203839683.17463.9.camel@homer.simson.net>
[not found] ` <1204019283.8731.11.camel@homer.simson.net>
[not found] ` <1204033003.11828.22.camel@homer.simson.net>
2008-02-26 23:08 ` regression: CD burning (k3b) went broke Andrew Morton
2008-02-27 0:46 ` Jeff Garzik
2008-02-27 2:58 ` Mike Galbraith
2008-02-27 2:24 ` Mike Galbraith
2008-02-27 6:00 ` Mike Galbraith
2008-02-27 7:07 ` Mike Galbraith
2008-02-28 7:43 ` Tejun Heo
2008-02-28 8:20 ` Mike Galbraith
2008-02-28 8:50 ` [PATCH] block: fix residual byte count handling Tejun Heo
2008-02-28 15:35 ` Jens Axboe
2008-02-28 15:46 ` Tejun Heo
2008-02-29 16:47 ` James Bottomley
2008-02-29 20:11 ` Jens Axboe
2008-03-01 6:17 ` Tejun Heo
2008-03-01 15:19 ` James Bottomley
2008-03-02 14:52 ` FUJITA Tomonori
2008-03-02 18:46 ` Mike Christie
2008-03-03 3:27 ` Mike Galbraith
2008-03-03 2:40 ` Tejun Heo
2008-03-03 3:59 ` FUJITA Tomonori
2008-03-03 4:09 ` Tejun Heo
2008-03-03 6:08 ` [PATCH 1/2] " Tejun Heo
2008-03-03 6:10 ` [PATCH] block: separate out padding from alignment Tejun Heo
2008-03-03 18:27 ` James Bottomley
2008-03-03 8:26 ` [PATCH] block: fix residual byte count handling FUJITA Tomonori
2008-03-03 9:21 ` Tejun Heo
2008-03-03 12:17 ` FUJITA Tomonori
2008-03-03 13:38 ` Tejun Heo
2008-03-03 13:50 ` FUJITA Tomonori
2008-03-03 13:55 ` Tejun Heo
2008-03-03 14:01 ` FUJITA Tomonori
2008-03-03 14:22 ` Tejun Heo
2008-03-03 14:52 ` FUJITA Tomonori
2008-03-03 22:44 ` Tejun Heo [this message]
2008-03-04 2:11 ` FUJITA Tomonori
2008-03-04 2:32 ` Tejun Heo
2008-03-04 8:53 ` FUJITA Tomonori
2008-03-04 8:59 ` Jens Axboe
2008-03-04 9:06 ` FUJITA Tomonori
2008-03-04 9:22 ` FUJITA Tomonori
2008-03-04 9:30 ` Tejun Heo
2008-03-04 9:35 ` Jens Axboe
2008-03-04 9:40 ` Tejun Heo
2008-03-04 9:46 ` Jens Axboe
2008-03-04 12:37 ` Mike Galbraith
2008-03-04 12:39 ` Jens Axboe
2008-03-04 12:43 ` Mike Galbraith
2008-03-04 12:58 ` Mike Galbraith
2008-03-04 13:03 ` Jens Axboe
2008-03-04 14:25 ` Mike Galbraith
2008-03-04 18:17 ` Jens Axboe
2008-03-04 18:29 ` Jens Axboe
2008-03-04 18:35 ` Mike Galbraith
2008-03-04 18:45 ` Jens Axboe
2008-03-04 18:49 ` Mike Galbraith
2008-03-04 18:54 ` Jens Axboe
2008-03-04 19:26 ` Mike Galbraith
2008-03-04 19:28 ` Jens Axboe
2008-03-04 16:04 ` James Bottomley
2008-03-04 18:46 ` Jens Axboe
2008-03-04 17:34 ` walt
2008-03-04 17:59 ` Tejun Heo
2008-03-04 19:18 ` walt
2008-03-04 19:42 ` Kiyoshi Ueda
2008-03-04 12:40 ` Tejun Heo
2008-03-04 12:45 ` Mike Galbraith
2008-03-04 13:30 ` FUJITA Tomonori
2008-03-04 13:50 ` Tejun Heo
2008-03-04 16:17 ` Tejun Heo
2008-03-04 16:42 ` Tejun Heo
2008-03-04 18:26 ` Boaz Harrosh
2008-03-04 18:35 ` Tejun Heo
2008-03-04 18:27 ` James Bottomley
2008-03-04 18:33 ` Tejun Heo
2008-03-04 18:45 ` Mike Galbraith
2008-03-04 19:25 ` Jens Axboe
2008-03-04 19:33 ` Mike Galbraith
2008-03-04 19:34 ` Jens Axboe
2008-03-04 19:19 ` FUJITA Tomonori
2008-03-04 23:33 ` Tejun Heo
2008-03-04 23:54 ` Tejun Heo
2008-03-05 0:26 ` FUJITA Tomonori
2008-03-05 0:44 ` Tejun Heo
2008-03-06 4:56 ` FUJITA Tomonori
2008-03-06 5:02 ` Tejun Heo
2008-03-05 10:16 ` [PATCH] blk: missing add of padded bytes to io completion byte count Boaz Harrosh
2008-03-05 12:28 ` Mike Galbraith
2008-03-05 12:33 ` Jens Axboe
2008-03-05 12:46 ` Boaz Harrosh
2008-03-05 12:48 ` Jens Axboe
2008-03-05 13:45 ` Tejun Heo
2008-03-05 13:51 ` Jens Axboe
2008-03-05 14:08 ` Tejun Heo
2008-03-05 15:21 ` James Bottomley
2008-03-06 4:41 ` FUJITA Tomonori
2008-03-06 13:41 ` Jens Axboe
2008-03-07 0:07 ` Tejun Heo
2008-03-07 15:07 ` FUJITA Tomonori
2008-03-08 1:06 ` Tejun Heo
2008-03-20 12:54 ` FUJITA Tomonori
2008-03-05 14:46 ` Boaz Harrosh
2008-03-05 15:11 ` Tejun Heo
2008-03-06 5:02 ` FUJITA Tomonori
2008-03-04 9:29 ` [PATCH] block: fix residual byte count handling Tejun Heo
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=47CC7F3D.4010605@gmail.com \
--to=htejun@gmail.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=akpm@linux-foundation.org \
--cc=efault@gmx.de \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=jens.axboe@oracle.com \
--cc=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=tomof@acm.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;
as well as URLs for NNTP newsgroup(s).