看板 DFBSD_commit 關於我們 聯絡資訊
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