+ -
当前位置:首页 → 问答吧 → linux内核建立临时页表时到底映射了多大的内存?

linux内核建立临时页表时到底映射了多大的内存?

时间:2010-08-08

来源:互联网

以前的教程都说linux建立了8M的临时页表,两个页目录项。今天在看linux-2.6.34的时候,没看出内核到底映射了多大的内存,希望高手指教。
下面代码中红色部分是计算到底映射多大内存的,但是具体数值是多少啊?
page_pde_offset = (__PAGE_OFFSET >> 20);

        movl $pa(__brk_base), %edi
        movl $pa(swapper_pg_dir), %edx /*%edx = 页目录的起始地址*/
        
       /* #define PTE_IDENT_ATTR         0x003*/                /* PRESENT+RW */
        movl $PTE_IDENT_ATTR, %eax
10:
       /* #define PDE_IDENT_ATTR         0x067 */                /* PRESENT+RW+USER+DIRTY+ACCESSED */
        leal PDE_IDENT_ATTR(%edi),%ecx                /* Create PDE entry */
        movl %ecx,(%edx)                        /* Store identity PDE entry */
        movl %ecx,page_pde_offset(%edx)                /* Store kernel PDE entry */
        addl $4,%edx                         /*页目录项加1*/
        movl $1024, %ecx
11:
        stosl
        addl $0x1000,%eax /* %eax中存放的是页的物理地址*/
        loop 11b
        /*
         * End condition: we must map up to the end + MAPPING_BEYOND_END.
         */
        movl $pa(_end) + MAPPING_BEYOND_END + PTE_IDENT_ATTR, %ebp
        cmpl %ebp,%eax
        jb 10b
        addl $__PAGE_OFFSET, %edi
        movl %edi, pa(_brk_end)
        shrl $12, %eax
        movl %eax, pa(max_pfn_mapped)

作者: liujunwei1234   发布时间: 2010-08-08

回复 liujunwei1234


    为什么每次发帖都没人回答我啊!

作者: liujunwei1234   发布时间: 2010-08-09

热门下载

更多