git: kernel - Rewrite the x86-64 pmap code

看板DFBSD_commit作者時間14年前 (2011/10/27 03:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 701c977e41807eb03343c695da4625c091d152b1 Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Wed Oct 26 11:42:18 2011 -0700 kernel - Rewrite the x86-64 pmap code * Use unassociated VM pages (without a VM object) for all page table pages. * Remove kptobj and pmap->pm_pteobj. * For the moment implement a Red-Black tree for pv_entry_t manipulation. Revamp the pindex to include all page table page levels, from terminal pages to the PML4 page. The hierarchy is now arranged via the PV system. * As before, the kernel page tables only use PV entries for terminal pages. * Refactor the locking to allow blocking operations during deep scans. Individual PV entries are now locked and critical PMAP operations do not require the pmap->pm_token. This should greatly improve threaded program performance. * Fix kgdb on the live kernel (pmap_extract() was not handling short-cutted page directory pages). Summary of changes: sys/platform/pc64/include/pmap.h | 54 +- sys/platform/pc64/include/vmparam.h | 2 +- sys/platform/pc64/x86_64/machdep.c | 1 + sys/platform/pc64/x86_64/pmap.c | 3261 +++++++++++++++++------------------ 4 files changed, 1666 insertions(+), 1652 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/701c977e41807eb03343c695da4625c091d152b1 -- DragonFly BSD source repository
文章代碼(AID): #1Eg5ZqJt (DFBSD_commit)