[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <46B1659D.30707@gmail.com>
Date: Thu, 02 Aug 2007 14:03:25 +0900
From: Tejun Heo <htejun@...il.com>
To: Neil Brown <neilb@...e.de>
CC: linux-kernel@...r.kernel.org
Subject: Re: [PATCH 025 of 35] Treat rq->hard_nr_sectors as setting an overriding
limit in the size of the request
Neil Brown wrote:
> On Thursday August 2, htejun@...il.com wrote:
>> This is pretty confusing. In all other places, bi_size -> #sector
>> conversion is done by rounding down but only in blk_rq_bio_prep() it's
>> being rounded up.
>>
>> Is my following reasoning correct?
>>
>> It was okay till now because unaligned requests don't get merged and
>> also haven't done partial completions (end_that_request_first with
>> partial count)? So till now, hard_nr_sectors and nr_sectors didn't
>> really matter for unaligned requests but now it matters because it's
>> considered while iterating over bvecs in rq.
>
> Yes, that reasoning matches mine.
>
>> If so, I think the correct thing to do would be changing bio_sectors()
>> to round up first or let block layer measure transfer in bytes not in
>> sectors. I don't think everyone would agree with the latter tho. I
>> (tentatively) think it would be better to represent length in bytes
>> tho. A lot of requests which aren't aligned to 512 bytes pass through
>> the block layer and the mismatch can result in subtle bugs.
>
> I suspect that having a byte count in 'struct request' would make
> sense too. However I would rather avoid making that change myself - I
> think it would require reading and understanding a lot more code....
>
> I cannot see anything that would go wrong with rounding up bio_sectors
> unconditionally, so I think I will take that approach for this patch
> series.
Yes, converting to nbytes will probably take a lot of work and probably
deserves a separate series if it's ever gonna be done.
Thanks.
--
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists