[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <49CB3765.4070406@panasas.com>
Date: Thu, 26 Mar 2009 10:05:57 +0200
From: Boaz Harrosh <bharrosh@...asas.com>
To: Tejun Heo <htejun@...il.com>
CC: bzolnier@...il.com, linux-kernel@...r.kernel.org, axboe@...nel.dk,
linux-ide@...r.kernel.org
Subject: Re: [PATCH 03/14] block: implement blk_rq_map_kern_prealloc()
On 03/26/2009 09:42 AM, Tejun Heo wrote:
> Hello,
>
> A few issues.
>
> Tejun Heo wrote:
>>> Perhaps you could reorder the code below a bit?
>>>
>>> My proposal is:
>>> * blk_rq_map_kern_prealloc => is simplified to be
>>> int blk_rq_map_bio(struct request_queue *q, struct request *rq,
>>> struct bio *bio);
>
> The thing is that the prealloc variant should be allowed to be called
> from IRQ context and blk_queue_bounce() shouldn't be called.
> Hmmm... well, the caller is supposed to know what it's doing and maybe
> we can just add a comment that it shouldn't be called with buffers
> which might get bounced from IRQ context.
>
Hmm that is a problem. I would suggest a flag or a check. My bios come
from VFS they need bouncing.
Can you think of a solution?
We could just call blk_queue_bounce(). IRQ callers need to make sure their
buffers don't need bouncing anyway, so there is no such bug right? If a programmer
gets it wrong he will get a BUG check that tells him that.
>>> * The extra checks currently inside blk_rq_map_kern_prealloc are moved
>>> to bio_map_kern_prealloc()
>>>
>>> * Users call bio_map_kern_prealloc() directly and then use blk_rq_map_bio()
>>> in a two stage process.
>
> This breaks consistency with blk_rq_map_*() family of functions. Do
> you have a plan to make them all consistent? I think we really need
> to maintain API consistency.
>
I agree, that is why I called it blk_make_request originally. But this is not good
for you since your request is pre-allocated as well as the bio.
It needs a different name, blk_rq_set_bio(), I don't know do you have any ideas?
> Thanks.
>
Thanks
Boaz
--
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