[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [dm-devel] [RFC, PATCH] remove signal handling from dm-io.c, sync_io()
- From: Dave Olien <dmo osdl org>
- To: Kevin Corry <kevcorry us ibm com>
- Cc: dm-devel sistina com, agk redhat com
- Subject: Re: [dm-devel] [RFC, PATCH] remove signal handling from dm-io.c, sync_io()
- Date: Thu, 10 Jun 2004 17:20:18 -0700
I suggest either fixing the multi-region functionality, or
removing it. I can think of schemes either way.
One thing I want to remove if we keep the multi-region case, is to
NOT use the bio_vec array to store region number. This is what
causes problems for snapshot volumes when specifing a chunk
size of 1024k.
Notice in do_region(), the line
num_bvecs = (remaining / (PAGE_SIZE >> 9)) + 2;
The addition of 2 causes the following bio_set_alloc()
to hit its BUG() statement.
I think it is also what causes dm-io to maintain it's own
pools of bio_vec and bio structures, instead of using the
kernel-wide pools.
On Thu, Jun 10, 2004 at 04:28:01PM -0700, Dave Olien wrote:
>
> Sorry, I've been in a meeting for the last hour...
>
> I agree on both your counts.
>
> I've been wondering about the multiple region stuff. I don't
> think these routines are ever used to do multiple region IO.
> Is there any plan to use them that way? I could see maybe with
> multi-way mirroring, there might be some use. But I don't think
> that's done yet.
>
> the do_region() function in particular seems broken to me.
>
> If we eliminate the multi-region support entirely, this code can
> all be simplified a lot. The allocation and initialization could
> of bio's and bvecs could just use the defined code in fs/bio.c
>
> How about I write up this file to eliminate multi-region IO?
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]