From owner-cvs-sys Sat Jan 31 03:58:21 1998 Return-Path: Received: (from daemon@localhost) by hub.freebsd.org (8.8.8/8.8.8) id DAA03246 for cvs-sys-outgoing; Sat, 31 Jan 1998 03:58:21 -0800 (PST) (envelope-from owner-cvs-sys) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id DAA03216; Sat, 31 Jan 1998 03:58:17 -0800 (PST) (envelope-from dyson@FreeBSD.org) From: John Dyson Received: (from dyson@localhost) by freefall.freebsd.org (8.8.8/8.8.5) id DAA09301; Sat, 31 Jan 1998 03:56:57 -0800 (PST) Date: Sat, 31 Jan 1998 03:56:57 -0800 (PST) Message-Id: <199801311156.DAA09301@freefall.freebsd.org> To: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG, cvs-sys@FreeBSD.ORG Subject: cvs commit: src/sys/i386/i386 pmap.c src/sys/kern vfs_bio.c vfs_cluster.c src/sys/nfs nfs_serv.c src/sys/vm device_pager.c swap_pager.c vm_fault.c vm_kern.c vm_map.c vm_object.c vm_object.h vm_page.c vm_pageout.c vnode_pager.c Sender: owner-cvs-sys@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk dyson 1998/01/31 03:56:57 PST Modified files: sys/i386/i386 pmap.c sys/kern vfs_bio.c vfs_cluster.c sys/nfs nfs_serv.c sys/vm device_pager.c swap_pager.c vm_fault.c vm_kern.c vm_map.c vm_object.c vm_object.h vm_page.c vm_pageout.c vnode_pager.c Log: Change the busy page mgmt, so that when pages are freed, they MUST be PG_BUSY. It is bogus to free a page that isn't busy, because it is in a state of being "unavailable" when being freed. The additional advantage is that the page_remove code has a better cross-check that the page should be busy and unavailable for other use. There were some minor problems with the collapse code, and this plugs those subtile "holes." Also, the vfs_bio code wasn't checking correctly for PG_BUSY pages. I am going to develop a more consistant scheme for grabbing pages, busy or otherwise. For now, we are stuck with the current morass. Revision Changes Path 1.179 +21 -7 src/sys/i386/i386/pmap.c 1.147 +22 -4 src/sys/kern/vfs_bio.c 1.53 +13 -2 src/sys/kern/vfs_cluster.c 1.55 +6 -1 src/sys/nfs/nfs_serv.c 1.28 +1 -2 src/sys/vm/device_pager.c 1.83 +3 -6 src/sys/vm/swap_pager.c 1.77 +5 -14 src/sys/vm/vm_fault.c 1.41 +1 -2 src/sys/vm/vm_kern.c 1.109 +5 -3 src/sys/vm/vm_map.c 1.109 +56 -25 src/sys/vm/vm_object.c 1.44 +3 -1 src/sys/vm/vm_object.h 1.88 +82 -41 src/sys/vm/vm_page.c 1.110 +7 -7 src/sys/vm/vm_pageout.c 1.81 +1 -2 src/sys/vm/vnode_pager.c