On Fri, 20 Apr 2007 09:58:52 +0100David Howells <dhowells@redhat.com> wrote:> > Because kmalloc() may be able to get us a smaller chunk of memory. Actually,> calling __get_free_pages() might be a better, and then release the excess> pages.

Interesting, that rings a bell here.

I wonder why we dont use this in alloc_large_system_hash().

(if __get_free_pages(GFP_ATOMIC, order) is used instead of alloc_bootmem() or __vmalloc())

We currently loose 1/4 of space on tcp hash table for example, because sizeof(inet_ehash_bucket) is not a power of 2.

Is it really possible to allocate an order-10 page, then release part of it (say an order-8 subpage) ?