Messages in this thread |  | | | Date | Fri, 1 May 2009 09:59:35 -0400 (EDT) | | From | Christoph Lameter <> | | Subject | Re: [PATCH mmotm] mm: alloc_large_system_hash check order |
| |
On Fri, 1 May 2009, Mel Gorman wrote:
> > Andrew noticed another oddity: that if it goes the hashdist __vmalloc() > > way, it won't be limited by MAX_ORDER. Makes one wonder whether it > > ought to fall back to __vmalloc() if the alloc_pages_exact() fails. > > I don't believe so. __vmalloc() is only used when hashdist= is used or on IA-64 > (according to the documentation). It is used in the case that the caller is > willing to deal with the vmalloc() overhead (e.g. using base page PTEs) in > exchange for the pages being interleaved on different nodes so that access > to the hash table has average performance[*] > > If we automatically fell back to vmalloc(), I bet 2c we'd eventually get > a mysterious performance regression report for a workload that depended on > the hash tables performance but that there was enough memory for the hash > table to be allocated with vmalloc() instead of alloc_pages_exact().
Can we fall back to a huge page mapped vmalloc? Like what the vmemmap code does? Then we also would not have MAX_ORDER limitations.
|  |