git: kernel - vm_page BUSY handling, change vm_page_cache() API,

看板DFBSD_commit作者時間15年前 (2010/12/20 14:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit a491077eece340924fa7f34a248de64be5888c1f Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Sun Dec 19 21:52:36 2010 -0800 kernel - vm_page BUSY handling, change vm_page_cache() API, maybe fix seg-fault * All vm_page_deactivate() calls now operate with the caller holding the page PG_BUSY or the page known not to be busy. Reorder several cases where a vm_page is unbusied prior to calling deactivate. * vm_page_cache() now expected the vm_page to be PG_BUSY and will cache the page and clear the bit. * Fix a race in vm_pageout_page_free() which calls vm_object_reference() with an unbusied vm_page, then proceeds to busy and free the page. The problem is that vm_object_reference() can block on vmobj_token. This may fix the x86-64 seg-fault issue. Or it may not (throws up hands). * Remove incorrect KKASSERT which was causing bogus panics. Summary of changes: sys/kern/kern_slaballoc.c | 2 +- sys/kern/uipc_syscalls.c | 4 +++- sys/kern/vfs_bio.c | 2 +- sys/platform/pc32/i386/pmap.c | 2 +- sys/platform/pc64/x86_64/pmap.c | 2 +- sys/platform/vkernel/platform/pmap.c | 2 +- sys/platform/vkernel64/platform/pmap.c | 2 +- sys/vm/swap_pager.c | 2 +- sys/vm/vm_contig.c | 5 ++++- sys/vm/vm_fault.c | 11 ++++++++--- sys/vm/vm_object.c | 2 ++ sys/vm/vm_page.c | 21 +++++++++++++++------ sys/vm/vm_pageout.c | 15 +++++++++------ 13 files changed, 48 insertions(+), 24 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/a491077eece340924fa7f34a248de64be5888c1f -- DragonFly BSD source repository
文章代碼(AID): #1D3l4Zeq (DFBSD_commit)