I agree with the need for a more generic solution to bio pools. Duplicating code in dm-io.c is unfortunate. I suspect that won't be solvable until 2.7/2.8. Probably wouldn't want to make this kind of change in a stable release. You're right, this is in bio_clone() dm.c, and the local bio allocators are statically declared in dm-io.c. What would you think of creating a bio_set_clone() in dm-io.c, and exporting the symbol for use by dm.c, the replace that bio_clone() with a call to bio_set_clone(). On Wed, Jun 30, 2004 at 01:26:41PM -0500, Kevin Corry wrote: > > The call to bio_clone() in the above trace is not in dm-io.c - it's in dm.c > and part of the normal I/O path. I've always been a bit wary of calling the > generic bio_clone() at that point, but I've never been able to generate a > case that causes memory starvation like you're seeing. > > In my opinion, what we *really* need to do is move the local bio pool stuff in > dm-io.c into fs/bio.c, and provide a kernel-wide mechanism for creating pools > of bios. Then we could use that mechanism from both dm.c and dm-io.c. > > Of course, we'll need to convince a few more people than just the three of us > before we can make such a change. :) > > -- > Kevin Corry > kevcorry@xxxxxxxxxx > http://evms.sourceforge.net/ > -- > > dm-devel@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/dm-devel