Hi Wanpeng,

Thank you for reviewing. See below, please.

On 09/05/2013 09:30 PM, Wanpeng Li wrote:
......
+#ifdef CONFIG_MOVABLE_NODE
+       unsigned long kernel_end;
+
+       if (movablenode_enable_srat&&
+           memblock.current_order == MEMBLOCK_ORDER_LOW_TO_HIGH) {

I think memblock.current_order == MEMBLOCK_ORDER_LOW_TO_HIGH is always
true if config MOVABLE_NODE and movablenode_enable_srat == true if PATCH
11/11 is applied.

memblock.current_order == MEMBLOCK_ORDER_LOW_TO_HIGH is true here if MOVABLE_NODE is configured, and it will be reset after SRAT is parsed. But movablenode_enable_srat could only be true when users specify movablenode boot option in the kernel commandline.

Please refer to patch 9/11.


+               kernel_end = round_up(__pa_symbol(_end), PMD_SIZE);
+
+               memory_map_from_low(kernel_end, end);
+               memory_map_from_low(ISA_END_ADDRESS, kernel_end);

Why split ISA_END_ADDRESS ~ end?

The first 5 pages for the page tables are from brk, please refer to alloc_low_pages(). They are able to map about 2MB memory. And this 2MB memory will be used to store
page tables for the next mapped pages.

Here, we split [ISA_END_ADDRESS, end) into [ISA_END_ADDRESS, _end) and [_end, end), and map [_end, end) first. This is because memory in [ISA_END_ADDRESS, _end) may be used, then we have not enough memory for the next coming page tables. We should map
[_end, end) first because this memory is highly likely unused.


......

I think the variables sorted by address is:
ISA_END_ADDRESS ->  _end ->  real_end ->  end

Yes.


+       memory_map_from_high(ISA_END_ADDRESS, real_end);

If this is overlap with work done between #ifdef CONFIG_MOVABLE_NODE and
#endif?


I don't think so. Seeing from my code, if work between #ifdef CONFIG_MOVABLE_NODE and
#endif is done, it will goto out, right ?

Thanks.

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

Reply via email to