On Tue, 2011-04-12 at 12:29 +0200, Michal Nazarewicz wrote: > On Tue, 12 Apr 2011 00:03:48 +0200, Dave Hansen <dave@xxxxxxxxxxxxxxxxxx> > wrote: > > diff -puN mm/page_alloc.c~reuse-free-exact mm/page_alloc.c > > --- linux-2.6.git/mm/page_alloc.c~reuse-free-exact 2011-04-11 > > 15:01:17.701822598 -0700 > > +++ linux-2.6.git-dave/mm/page_alloc.c 2011-04-11 15:01:17.713822594 > > -0700 > > @@ -2338,14 +2338,11 @@ struct page *__alloc_pages_exact(gfp_t g > > page = alloc_pages(gfp_mask, order); > > if (page) { > > - struct page *alloc_end = page + (1 << order); > > - struct page *used = page + nr_pages; > > + struct page *unused_start = page + nr_pages; > > + int nr_unused = (1 << order) - nr_pages; > > How about unsigned long? Personally, I'd rather leave this up to the poor sucker that tries to set MAX_ORDER to 33. If someone did that, we'd end up with kernels that couldn't even boot on systems with less than 16GB of RAM since the (required) flatmem mem_map[] would take up ~14.3GB. They couldn't handle memory holes and couldn't be NUMA-aware, either. So, if someone had a system like that, fixed up all the other spots where we store numbers of pages in ints, and then did an 8TB+4k allocation, yes, this would matter. I'd rather save the 10 bytes of source code and 4 bytes of stack than account for such an impossibly improbable system. -- Dave -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>