<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test2/sys/vm/vm_object.c, branch release/2.0.5_cvs</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F2.0.5_cvs</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F2.0.5_cvs'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/'/>
<updated>1995-06-10T19:44:55Z</updated>
<entry>
<title>This commit was manufactured by cvs2svn to create tag</title>
<updated>1995-06-10T19:44:55Z</updated>
<author>
<name>cvs2svn</name>
<email>cvs2svn@FreeBSD.org</email>
</author>
<published>1995-06-10T19:44:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=fbe312c9f723b704a542825383058d1a2eb63f94'/>
<id>urn:sha1:fbe312c9f723b704a542825383058d1a2eb63f94</id>
<content type='text'>
'RELENG_2_0_5_RELEASE'.

This commit was manufactured to restore the state of the 2.0.5-RELEASE image.
Releases prior to 5.3-RELEASE are omitting the secure/ and crypto/ subdirs.
</content>
</entry>
<entry>
<title>Fixed a bug that would cause a hang or panic if an object clean operation</title>
<updated>1995-06-04T13:53:25Z</updated>
<author>
<name>David Greenman</name>
<email>dg@FreeBSD.org</email>
</author>
<published>1995-06-04T13:53:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=5898dfb90af42e16aee7290b0e20db041be14cb2'/>
<id>urn:sha1:5898dfb90af42e16aee7290b0e20db041be14cb2</id>
<content type='text'>
happend while the file vnode was locked by another process. This happens
because the call to vget() wasn't checked for failure so the clean
operation would happen without the lock and then the corresponding vput()
would release the lock it didn't have and give up a vnode reference it
didn't have (which could result in an in-use vnode being freed). The
problem would only be seen during an msync() of the mapped file or
when the file fell off the object cache (although this latter case is
unlikely because the file's object would have to be OBJ_WRITEABLE, and
thus shouldn't be on the object cache list).

Reviewed by:	John Dyson
</content>
</entry>
<entry>
<title>Remove trailing whitespace.</title>
<updated>1995-05-30T08:16:23Z</updated>
<author>
<name>Rodney W. Grimes</name>
<email>rgrimes@FreeBSD.org</email>
</author>
<published>1995-05-30T08:16:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=9b2e535452929d6f2f798a2c01b23b1f547a0b0f'/>
<id>urn:sha1:9b2e535452929d6f2f798a2c01b23b1f547a0b0f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Changes to fix the following bugs:</title>
<updated>1995-05-21T21:39:31Z</updated>
<author>
<name>David Greenman</name>
<email>dg@FreeBSD.org</email>
</author>
<published>1995-05-21T21:39:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=61f5d510623c7fd6aa5335cf8c5b785915365c8d'/>
<id>urn:sha1:61f5d510623c7fd6aa5335cf8c5b785915365c8d</id>
<content type='text'>
1) Files weren't properly synced on filesystems other than UFS. In some
   cases, this lead to lost data. Most likely would be noticed on NFS.
   The fix is to make the VM page sync/object_clean general rather than
   in each filesystem.
2) Mixing regular and mmaped file I/O on NFS was very broken. It caused
   chunks of files to end up as zeroes rather than the intended contents.
   The fix was to fix several race conditions and to kludge up the
   "b_dirtyoff" and "b_dirtyend" that NFS relies upon - paying attention
   to page modifications that occurred via the mmapping.

Reviewed by:	David Greenman
Submitted by:	John Dyson
</content>
</entry>
<entry>
<title>Changed object hash list to be a list rather than a tailq. This saves</title>
<updated>1995-05-02T05:57:11Z</updated>
<author>
<name>David Greenman</name>
<email>dg@FreeBSD.org</email>
</author>
<published>1995-05-02T05:57:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=f325917a653e93998f1013081225956ce032f58e'/>
<id>urn:sha1:f325917a653e93998f1013081225956ce032f58e</id>
<content type='text'>
space for the hash list buckets and is a little faster. The features
of tailq aren't needed. Increased the size of the object hash table
to improve performance. In the future, this will be changed so that
the table is sized dynamically.
</content>
</entry>
<entry>
<title>Fixed a problem in _vm_object_page_clean that could cause an</title>
<updated>1995-04-21T02:48:40Z</updated>
<author>
<name>John Dyson</name>
<email>dyson@FreeBSD.org</email>
</author>
<published>1995-04-21T02:48:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=7e15fd27577744fa48ca9fde818f113b7bd52927'/>
<id>urn:sha1:7e15fd27577744fa48ca9fde818f113b7bd52927</id>
<content type='text'>
infinite loop.
</content>
</entry>
<entry>
<title>Moved some zero-initialized variables into .bss. Made code intended to be</title>
<updated>1995-04-16T12:56:22Z</updated>
<author>
<name>David Greenman</name>
<email>dg@FreeBSD.org</email>
</author>
<published>1995-04-16T12:56:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=c3cb3e12f5247fa2d7fa6e5f1e8784160c5da89a'/>
<id>urn:sha1:c3cb3e12f5247fa2d7fa6e5f1e8784160c5da89a</id>
<content type='text'>
called only from DDB #ifdef DDB. Removed some completely unused globals.
</content>
</entry>
<entry>
<title>Fixed a few bugs in vm_object_page_clean, mostly related to not syncing</title>
<updated>1995-04-16T03:11:28Z</updated>
<author>
<name>David Greenman</name>
<email>dg@FreeBSD.org</email>
</author>
<published>1995-04-16T03:11:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=ec4f9fb0ee96e85040eae669f59d7bd9911d37f8'/>
<id>urn:sha1:ec4f9fb0ee96e85040eae669f59d7bd9911d37f8</id>
<content type='text'>
pages that are in FS buffers. This fixes the (believed to already have been
fixed) problem with msync() not doing it's job...in other words, the
stuff that Andrew has continuously been complaining about.

Submitted by:	John Dyson, w/minor changes by me.
</content>
</entry>
<entry>
<title>Changes from John Dyson and myself:</title>
<updated>1995-04-09T06:03:56Z</updated>
<author>
<name>David Greenman</name>
<email>dg@FreeBSD.org</email>
</author>
<published>1995-04-09T06:03:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=f6b04d2bfb2ed3e60f75c7d34fb4d212723d8821'/>
<id>urn:sha1:f6b04d2bfb2ed3e60f75c7d34fb4d212723d8821</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Removed (almost) meaningless "object cache lookups/hits" statistic. In</title>
<updated>1995-03-25T08:42:14Z</updated>
<author>
<name>David Greenman</name>
<email>dg@FreeBSD.org</email>
</author>
<published>1995-03-25T08:42:14Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=260295f9793b0b0c97203585729a844c687502d2'/>
<id>urn:sha1:260295f9793b0b0c97203585729a844c687502d2</id>
<content type='text'>
our framework, these numbers will usually be nearly the same, and not
because of any sort of high 'hit rate'.
</content>
</entry>
</feed>
