Re: [PATCH 12/19] x86, mm: Add alloc_low_pages(num)

From: Yinghai Lu
Date: Mon Oct 22 2012 - 15:24:32 EST


On Mon, Oct 22, 2012 at 8:17 AM, Konrad Rzeszutek Wilk
<konrad@xxxxxxxxxx> wrote:
> On Thu, Oct 18, 2012 at 01:50:23PM -0700, Yinghai Lu wrote:
>> 32bit kmap mapping need page table to be used for low to high.
> ^-s
>
>>
>> At this point those page table are still from pgt_buf_* from BRK,
> ^s
>
>> So it is ok now.
>> But we want to move early_ioremap_page_table_range_init() out of
>> init_memory_mapping() and only call it one time later, that will
>> make page_table_range_init/page_table_kmap_check/alloc_low_page to
>> use memblock to get page.
>>
>> memblock allocation for page table are from high to low.
> ^s
>>
>> So will get panic from page_table_kmap_check() that has BUG_ON to do
>> ordering checking.
>>
>> This patch add alloc_low_pages to make it possible to alloc serveral pages
>> at first, and hand out pages one by one from low to high.
>
> .. But for right now this patch just makes it by default one.

?

---
32bit kmap mapping needs pages to be used for low to high.

At this point those pages are still from pgt_buf_* from BRK, so it is
ok now.
But we want to move early_ioremap_page_table_range_init() out of
init_memory_mapping() and only call it one time later, that will
make page_table_range_init/page_table_kmap_check/alloc_low_page to
use memblock to get page.

memblock allocation for pages are from high to low.

So will get panic from page_table_kmap_check() that has BUG_ON to do
ordering checking.

This patch add alloc_low_pages to make it possible to alloc serveral pages
at first, and hand out pages one by one from low to high.

-v2: add one line comment about xen requirements.
---
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/