Re: hashtables allocated with __get_free_pages()

Andrea Arcangeli (andrea@suse.de)
Fri, 2 Jul 1999 14:31:54 +0200 (CEST)


On Thu, 1 Jul 1999, Linus Torvalds wrote:

>Dynamic sizing, nothing more.

Yes, but my complain is in the way we used to alloc the dynamic sized
memory. (not that we are not allocing via static array in .bss, I know
we can't such way).

I think we can easily split the initialization in buffer_hash_init and
buffer_init, and we can call buffer_hash_init when memory_start can be
still moved ahead. We grab the raw kernel memory (the free-area-list are
not initilialized yet) and we can grab all the memory we want, it will be
all physical contigous and it will fit in the 4mbyte pagetable with the
kernel (or in kseg in Alpha and Mips).

In buffer_hash_init the only difference will be that instead of
__get_free_pages(order) in a loop, we'll have simply to do:

start_mem = LONG_ALIGN(start_mem);
hash_table = start_mem;
return start_mem + (PAGE_SIZE<<order);

I'll produce a patch soon (just to verify that I am not dreaming :).

(then we can remove all such additional order lists from page_alloc)

Andrea

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/