July 21, 2011
4:42 p.m.
So your question is rather more confined : Whether you can allocate physically cotigous memory of 16MB, right? Mapping is not an issue here. proper error handling will anyways tell you whether you succeeded or not. I think with kmalloc, you may not get memory larger than 4MB.
Yes mapping was never an issue. Contiguous physical frames is an issue. kmalloc limitation is 128KB. __get_page_frames with order higher that 10 would have higher chances of failing. I guess I need to grab as much contiguous memory as possible during boot time. My /proc/buddyinfo on a 512MB RAM machine paints a depressing picture of contiguous chunks.