Re: [PATCH] block: fix residual byte count handling

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: FUJITA Tomonori <tomof@...>
Cc: <jens.axboe@...>, <James.Bottomley@...>, <efault@...>, <akpm@...>, <linux-kernel@...>, <linux-ide@...>, <linux-scsi@...>, <jgarzik@...>, <fujita.tomonori@...>
Date: Sunday, March 2, 2008 - 10:40 pm

FUJITA Tomonori wrote:

At this point, it's not clear what the original meaning of rq->data_len
is because before moving alignment and padding to block layer,
rq->data_len equaled both the requested data length and the length of sg
list.  AFAIK, it's SCSI midlayer which makes sg list and data length
mismatch not block layer.

From the POV of the block layer, as now it might extend the sg list, it
has to decide what rq->data_len means in this case - the requested
transfer length from userland or the length of mapped sg list.

I think that currently the biggest problem is that drivers which don't
require request size adjustment are getting it because alignment setting
doesn't distinguish between start address alignment and size alignment.
For drivers which don't require data size adjustment from block layer,
data_len or raw_data_len doesn't matter.  They're equal anyway.  I'm
prepping a patch for this now.

For drivers which do require request size adjustments, I think it's
better to keep rq->data_len in line with the size of mapped sg list.
The rationales are...

- Those are dumb controllers which want to see requests which meet
certain size requirements and they're likely to care more about actual
data buffer size than user requested buffer size.  IOW, they wanna see
sizes which meet certain requirements, so give them those values.

- I think bugs caused by using raw_data_len instead of data_len are more
subtle than the other way around.  Using data_len instead of
raw_data_len usually affects the application layer while using
raw_data_len instead of data_len affects the DMA engine and transport layer.


If we're gonna go this way, we'll need blk_rq_total_data_len() and use
it for drivers which requires request size adjustments.

Thanks.

-- 
tejun
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
regression: CD burning (k3b) went broke, Mike Galbraith, (Thu Feb 21, 4:42 am)
Re: regression: CD burning (k3b) went broke, Jens Axboe, (Fri Feb 22, 3:32 am)
Re: regression: CD burning (k3b) went broke, Mike Galbraith, (Sat Feb 23, 3:42 am)
Re: regression: CD burning (k3b) went broke, Mike Galbraith, (Sun Feb 24, 3:54 am)
Re: regression: CD burning (k3b) went broke, Mike Galbraith, (Tue Feb 26, 5:48 am)
Re: regression: CD burning (k3b) went broke, Mike Galbraith, (Tue Feb 26, 9:36 am)
Re: regression: CD burning (k3b) went broke, Andrew Morton, (Tue Feb 26, 7:08 pm)
Re: regression: CD burning (k3b) went broke, Jeff Garzik, (Tue Feb 26, 8:46 pm)
Re: regression: CD burning (k3b) went broke, Mike Galbraith, (Tue Feb 26, 10:58 pm)
Re: regression: CD burning (k3b) went broke, Mike Galbraith, (Tue Feb 26, 10:24 pm)
Re: regression: CD burning (k3b) went broke, Mike Galbraith, (Wed Feb 27, 2:00 am)
Re: regression: CD burning (k3b) went broke, Mike Galbraith, (Wed Feb 27, 3:07 am)
Re: regression: CD burning (k3b) went broke, Tejun Heo, (Thu Feb 28, 3:43 am)
Re: regression: CD burning (k3b) went broke, Mike Galbraith, (Thu Feb 28, 4:20 am)
[PATCH] block: fix residual byte count handling, Tejun Heo, (Thu Feb 28, 4:50 am)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Thu Feb 28, 11:35 am)
Re: [PATCH] block: fix residual byte count handling, Tejun Heo, (Thu Feb 28, 11:46 am)
Re: [PATCH] block: fix residual byte count handling, James Bottomley, (Fri Feb 29, 12:47 pm)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Fri Feb 29, 4:11 pm)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Sun Mar 2, 10:52 am)
Re: [PATCH] block: fix residual byte count handling, Tejun Heo, (Sun Mar 2, 10:40 pm)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Sun Mar 2, 11:59 pm)
Re: [PATCH] block: fix residual byte count handling, Tejun Heo, (Mon Mar 3, 12:09 am)
Re: [PATCH] block: separate out padding from alignment, James Bottomley, (Mon Mar 3, 2:27 pm)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Mon Mar 3, 4:26 am)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Mon Mar 3, 8:17 am)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Mon Mar 3, 9:50 am)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Mon Mar 3, 10:01 am)
Re: [PATCH] block: fix residual byte count handling, Tejun Heo, (Mon Mar 3, 10:22 am)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Mon Mar 3, 10:52 am)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Mon Mar 3, 10:11 pm)
Re: [PATCH] block: fix residual byte count handling, Tejun Heo, (Mon Mar 3, 10:32 pm)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Tue Mar 4, 4:53 am)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Tue Mar 4, 4:59 am)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Tue Mar 4, 5:06 am)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Tue Mar 4, 5:22 am)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Tue Mar 4, 5:35 am)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Tue Mar 4, 5:46 am)
Re: [PATCH] block: fix residual byte count handling, Mike Galbraith, (Tue Mar 4, 8:37 am)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Tue Mar 4, 9:30 am)
Re: [PATCH] block: fix residual byte count handling, Tejun Heo, (Tue Mar 4, 12:17 pm)
Re: [PATCH] block: fix residual byte count handling, Tejun Heo, (Tue Mar 4, 12:42 pm)
Re: [PATCH] block: fix residual byte count handling, Boaz Harrosh, (Tue Mar 4, 2:26 pm)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Tue Mar 4, 3:19 pm)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Tue Mar 4, 8:26 pm)
Re: [PATCH] block: fix residual byte count handling, FUJITA Tomonori, (Thu Mar 6, 12:56 am)
Re: [PATCH] block: fix residual byte count handling, Mike Galbraith, (Tue Mar 4, 2:45 pm)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Tue Mar 4, 3:25 pm)
Re: [PATCH] block: fix residual byte count handling, Mike Galbraith, (Tue Mar 4, 3:33 pm)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Tue Mar 4, 3:34 pm)
Re: [PATCH] block: fix residual byte count handling, James Bottomley, (Tue Mar 4, 2:27 pm)
Re: [PATCH] block: fix residual byte count handling, Mike Galbraith, (Tue Mar 4, 8:45 am)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Tue Mar 4, 8:39 am)
Re: [PATCH] block: fix residual byte count handling, Kiyoshi Ueda, (Tue Mar 4, 3:42 pm)
Re: [PATCH] block: fix residual byte count handling, James Bottomley, (Tue Mar 4, 12:04 pm)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Tue Mar 4, 2:46 pm)
Re: [PATCH] block: fix residual byte count handling, Mike Galbraith, (Tue Mar 4, 8:43 am)
Re: [PATCH] block: fix residual byte count handling, Mike Galbraith, (Tue Mar 4, 8:58 am)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Tue Mar 4, 9:03 am)
Re: [PATCH] block: fix residual byte count handling, Mike Galbraith, (Tue Mar 4, 10:25 am)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Tue Mar 4, 2:17 pm)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Tue Mar 4, 2:29 pm)
Re: [PATCH] block: fix residual byte count handling, Mike Galbraith, (Tue Mar 4, 2:35 pm)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Tue Mar 4, 2:45 pm)
Re: [PATCH] block: fix residual byte count handling, Mike Galbraith, (Tue Mar 4, 2:49 pm)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Tue Mar 4, 2:54 pm)
Re: [PATCH] block: fix residual byte count handling, Mike Galbraith, (Tue Mar 4, 3:26 pm)
Re: [PATCH] block: fix residual byte count handling, Jens Axboe, (Tue Mar 4, 3:28 pm)
Re: [PATCH] block: fix residual byte count handling, Mike Christie, (Sun Mar 2, 2:46 pm)
Re: [PATCH] block: fix residual byte count handling, Mike Galbraith, (Sun Mar 2, 11:27 pm)
Re: [PATCH] block: fix residual byte count handling, James Bottomley, (Sat Mar 1, 11:19 am)