lkml.org 
[lkml]   [2007]   [Aug]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [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@gmail.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@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-08-02 07:09    [W:0.022 / U:2.104 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site