[dm-devel] Re: [Evms-devel] dm snapshot problem

Kevin Corry kevcorry at us.ibm.com
Fri Jan 14 03:42:26 UTC 2005


On Thursday 13 January 2005 16:34, Andrew Morton wrote:
> Kevin Corry <kevcorry at us.ibm.com> wrote:
> > > It would be better if dm could use highmem pages for this operation.
> >
> > What's the appropriate mechanism for telling the kernel to use highmem
> > for these structures? Each of these slabs (dm_io and dm_tio) are created
> > with kmem_cache_create(), and I don't see any corresponding flags in
> > slab.h that mention anything about highmem. Items are allocated from this
> > slab through mempool_alloc() with GFP_NOIO, since we're in the middle of
> > processing I/O requests and don't want to start new I/O in order to get
> > memory. Would it be proper to call mempool_alloc(pool,
> > GFP_NOIO|__GFP_HIGHMEM)?
>
> Oh.  slab structures can only be in lowmem.  I thought that you were saying
> that the actual I/O data was being copied, and only into lowmem pages.

Now that you mention it, the memory pages to hold the copied data is allocated 
at the time the snapshot device is activated, and uses 
alloc_page(GFP_KERNEL). Should we switch this to alloc_page(GFP_HIGHUSER)? I 
don't see many other places in the kernel tree that use this flag.

Of course, the number of these pages is currently a fixed limit per snapshot 
device (as I mentioned in an earlier reply), so it's kind of unlikely that 
these pages are a significant source of the memory usage that we're seeing in 
this test.

I'll see if I can start working on some improved congestion handling in DM. 
Hopefully that will make a noticeable difference.

Thanks for the help!
-- 
Kevin Corry
kevcorry at us.ibm.com
http://evms.sourceforge.net




More information about the dm-devel mailing list