As the running kernel needs these functions, a region of at least
VMALLOC_RESERVE will be reserved at the top of the address space.
VMALLOC_RESERVE is architecture specific but on the x86, it is defined
as 128MiB. This is why ZONE_NORMAL is generally referred to being only
896MiB in size; it is the 1GiB of the upper potion of the linear
address space minus the minimum 128MiB that is reserved for the
vmalloc region.
64 TB
ffff880000000000 - ffffc7ffffffffff (=64 TB) direct mapping of all phys. memory
/*
* if it is overlapping with brk pgt, we need to
* alloc pgt buf from memblock instead.
*/
can_use_brk_pgt = max(start, (u64)pgt_buf_end<<PAGE_SHIFT) >=
min(end, (u64)pgt_buf_top<<PAGE_SHIFT);
static void set_section_nid(unsigned long section_nr, int nid)
{
section_to_node_table[section_nr] = nid;
}
那需不须要再alloc node_data的时候检測这个node的大小是否符合要求?
high men?
high map? 内核中还有什么high的?都一样吗?
=========================================
high mem = 896M以上
cleanup_highmap(),清理了__START_KERNEL_map以上的映射。这是个虚拟地址的概念。
is_highmem_idx(), ZONE_HIGHMEM。这个感觉是物理地址的概念。
Another advantage is that sparse
doesn’t require each NUMA node’s
ranges to be contiguous.
如今不会,据说Michal以后会同意overlap。
当然我没有想好overlap后会怎么个运作。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章