On Mon, May 12, 2008 at 10:18:27AM +0800, zhuzhenhua wrote: > > This has nothing to do with remap_pfn_range but with the power of two > > sized buckets used by the global free page pool. Any allocation with > > get_free_pages will be rounded up to the next power of two. If that's a > > real concern for you you could allocate a 4MB page then split the page > > into a 2MB and two 1MB pages and free the 1MB page again. > thanks for your reply , i see in get_frree_pages and free_pages there is a > get_order(size). > but i don't understand " allocate a 4MB page then split the page > into a 2MB and two 1MB pages and free the 1MB page again." > is there any function to split it? No, you'd have to code that yourself. Take a look at split_page() which splits an order n page into order 0 pages. You'd want something similar but splitting for some non-zero order. Ralf