diff options
author | dg <dg@FreeBSD.org> | 1995-04-09 06:03:56 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1995-04-09 06:03:56 +0000 |
commit | b804a532828494b010ef0df5ed1bdef80932bc75 (patch) | |
tree | d7255955eb6b243461a28e283cd09739dbf8dbe7 /sys/vm/vm_object.h | |
parent | 78a655a0460b2e110a8aee7d5ee8ae5d27258f2f (diff) | |
download | FreeBSD-src-b804a532828494b010ef0df5ed1bdef80932bc75.zip FreeBSD-src-b804a532828494b010ef0df5ed1bdef80932bc75.tar.gz |
Changes from John Dyson and myself:
Fixed remaining known bugs in the buffer IO and VM system.
vfs_bio.c:
Fixed some race conditions and locking bugs. Improved performance
by removing some (now) unnecessary code and fixing some broken
logic.
Fixed process accounting of # of FS outputs.
Properly handle NFS interrupts (B_EINTR).
(various)
Replaced calls to clrbuf() with calls to an optimized routine
called vfs_bio_clrbuf().
(various FS sync)
Sync out modified vnode_pager backed pages.
ffs_vnops.c:
Do two passes: Sync out file data first, then indirect blocks.
vm_fault.c:
Fixed deadly embrace caused by acquiring locks in the wrong order.
vnode_pager.c:
Changed to use buffer I/O system for writing out modified pages. This
should fix the problem with the modification date previous not getting
updated. Also dramatically simplifies the code. Note that this is
going to change in the future and be implemented via VOP_PUTPAGES().
vm_object.c:
Fixed a pile of bugs related to cleaning (vnode) objects. The performance
of vm_object_page_clean() is terrible when dealing with huge objects,
but this will change when we implement a binary tree to keep the object
pages sorted.
vm_pageout.c:
Fixed broken clustering of pageouts. Fixed race conditions and other
lockup style bugs in the scanning of pages. Improved performance.
Diffstat (limited to 'sys/vm/vm_object.h')
-rw-r--r-- | sys/vm/vm_object.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h index e65b8a5..3220783 100644 --- a/sys/vm/vm_object.h +++ b/sys/vm/vm_object.h @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_object.h,v 1.15 1995/03/21 01:11:43 davidg Exp $ + * $Id: vm_object.h,v 1.16 1995/03/22 12:24:11 davidg Exp $ */ /* @@ -113,6 +113,7 @@ struct vm_object { #define OBJ_ILOCKED 0x0010 /* lock from modification */ #define OBJ_ILOCKWT 0x0020 /* wait for lock from modification */ #define OBJ_PIPWNT 0x0040 /* paging in progress wanted */ +#define OBJ_WRITEABLE 0x0080 /* object has been made writeable */ TAILQ_HEAD(vm_object_hash_head, vm_object_hash_entry); @@ -174,6 +175,7 @@ void vm_object_deallocate __P((vm_object_t)); void vm_object_enter __P((vm_object_t, vm_pager_t)); void vm_object_init __P((vm_size_t)); vm_object_t vm_object_lookup __P((vm_pager_t)); +void _vm_object_page_clean __P((vm_object_t, vm_offset_t, vm_offset_t, boolean_t)); void vm_object_page_clean __P((vm_object_t, vm_offset_t, vm_offset_t, boolean_t)); void vm_object_page_remove __P((vm_object_t, vm_offset_t, vm_offset_t, boolean_t)); void vm_object_pmap_copy __P((vm_object_t, vm_offset_t, vm_offset_t)); |