Hi,

On Wed, 2010-07-28 at 10:13 -0700, Andrew Morton wrote:
> On Wed, 28 Jul 2010 17:56:23 +0100 Steven Whitehouse <[email protected]> 
> wrote:
> 
> > +static void *gfs2_alloc_sort_buffer(unsigned size)
> > +{
> > +   void *ptr = NULL;
> > +
> > +   if (size < KMALLOC_MAX_SIZE)
> > +           ptr = kmalloc(size, GFP_NOFS | __GFP_NOWARN);
> > +   if (!ptr)
> > +           ptr = __vmalloc(size, GFP_NOFS, PAGE_KERNEL);
> > +   return ptr;
> > +}
> > +
> > +static void gfs2_free_sort_buffer(void *ptr)
> > +{
> > +   if (is_vmalloc_addr(ptr))
> > +           vfree(ptr);
> > +   else
> > +           kfree(ptr);
> > +}
> 
> This got kicked around a bit in May (Subject: mm: generic adaptive
> large memory allocation APIs).  That patch tried kmalloc(), then
> alloc_pages(), then vmalloc().  Nothing got merged though.
> 
> I wasn't terribly excited about it because of vague fears that it would
> just incite people to spend even less effort thinking about how large
> their individual allocations are.
> 
> apparmor has a private kvfree/kvmalloc.  Probably there are other
> versions floating around the tree as well.
> 

I did wonder about that too, but bearing in mind that the longer term
plan is to eliminate the vmalloc call, I wasn't sure it was worth doing,

Steve.


Reply via email to