#
44956c98 |
| 21-Jan-2003 |
Alfred Perlstein <alfred@FreeBSD.org> |
Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
|
#
2d5c7e45 |
| 20-Jan-2003 |
Matthew Dillon <dillon@FreeBSD.org> |
Close the remaining user address mapping races for physical I/O, CAM, and AIO. Still TODO: streamline useracc() checks.
Reviewed by: alc, tegge MFC after: 7 days
|
#
28ec30cd |
| 20-Jan-2003 |
Alan Cox <alc@FreeBSD.org> |
- Hold the page queues lock around vm_page_hold(). - Assert that the page queues lock rather than Giant is held in vm_page_hold().
|
Revision tags: release/5.0.0_cvs, release/5.0.0 |
|
#
6eb07b4a |
| 16-Jan-2003 |
Alan Cox <alc@FreeBSD.org> |
Fix two long-standing, but likely harmless, errors in the use of vm_pageout_deficit: 1. Update vm_pageout_deficit before VM_WAIT. There is no sense in delaying the update; the sooner the pageout
Fix two long-standing, but likely harmless, errors in the use of vm_pageout_deficit: 1. Update vm_pageout_deficit before VM_WAIT. There is no sense in delaying the update; the sooner the pageout daemon receives this information the better. Reviewed by: tegge 2. Update vm_pageout_deficit according to the number of pages still needed to complete the allocation, not the original size of the allocation. Submitted by: tegge
(These errors have existed since the introduction of vm_pageout_deficit in revision 1.144.)
show more ...
|
#
f5979003 |
| 16-Jan-2003 |
Matthew Dillon <dillon@FreeBSD.org> |
Merge all the various copies of vmapbuf() and vunmapbuf() into a single portable copy. Note that pmap_extract() must be used instead of pmap_kextract().
This is precursor work to a reorganization o
Merge all the various copies of vmapbuf() and vunmapbuf() into a single portable copy. Note that pmap_extract() must be used instead of pmap_kextract().
This is precursor work to a reorganization of vmapbuf() to close remaining user/kernel races (which can lead to a panic).
show more ...
|
#
b0ef8c5f |
| 14-Jan-2003 |
Alan Cox <alc@FreeBSD.org> |
- Update vm_pageout_deficit using atomic operations. It's a simple counter outside the scope of existing locks. - Eliminate a redundant clearing of vm_pageout_deficit.
|
#
8febaa4d |
| 12-Jan-2003 |
Alan Cox <alc@FreeBSD.org> |
vm_hold_load_pages() needn't clear PG_ZERO because it didn't pass VM_ALLOC_ZERO to vm_page_alloc(). (PG_ZERO is clear by default.)
|
#
1f179656 |
| 07-Jan-2003 |
Alan Cox <alc@FreeBSD.org> |
Make bogus_offset local to bufinit().
|
#
ea480413 |
| 05-Jan-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Fix cut&paste bug which would result in a panic because buffer was being biodone'ed multiple times.
|
#
9ce90443 |
| 05-Jan-2003 |
Alan Cox <alc@FreeBSD.org> |
Allocate bogus_page with VM_ALLOC_WIRED. (Previously, bogus_page's allocation incremented the global count of wired pages, but not the page's own wire count. This inconsistency was introduced in re
Allocate bogus_page with VM_ALLOC_WIRED. (Previously, bogus_page's allocation incremented the global count of wired pages, but not the page's own wire count. This inconsistency was introduced in revision 1.230.)
show more ...
|
#
f5b11b6e |
| 04-Jan-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Temporarily introduce a new VOP_SPECSTRATEGY operation while I try to sort out disk-io from file-io in the vm/buffer/filesystem space.
The intent is to sort VOP_STRATEGY calls into those which opera
Temporarily introduce a new VOP_SPECSTRATEGY operation while I try to sort out disk-io from file-io in the vm/buffer/filesystem space.
The intent is to sort VOP_STRATEGY calls into those which operate on "real" vnodes and those which operate on VCHR vnodes. For the latter kind, the call will be changed to VOP_SPECSTRATEGY, possibly conditionally for those places where dual-use happens.
Add a default VOP_SPECSTRATEGY method which will call the normal VOP_STRATEGY. First time it is called it will print debugging information. This will only happen if a normal vnode is passed to VOP_SPECSTRATEGY by mistake.
Add a real VOP_SPECSTRATEGY in specfs, which does what VOP_STRATEGY does on a VCHR vnode today.
Add a new VOP_STRATEGY method in specfs to catch instances where the conversion to VOP_SPECSTRATEGY has not yet happened. Handle the request just like we always did, but first time called print debugging information.
Apart up to two instances of console messages per boot, this amounts to a glorified no-op commit.
If you get any of the messages on your console I would very much like a copy of them mailed to phk@freebsd.org
show more ...
|
#
7b330b22 |
| 04-Jan-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Don't call VOP_BMAP on VCHR vnodes when the logical and physical block numbers are identical: it cannot even hope to accomplish anything.
|
#
86270230 |
| 03-Jan-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Convert calls to BUF_STRATEGY to VOP_STRATEGY calls. This is a no-op since all BUF_STRATEGY did in the first place was call VOP_STRATEGY.
|
#
9d5abbdd |
| 01-Jan-2003 |
Jens Schweikhardt <schweikh@FreeBSD.org> |
Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, especially in troff files.
|
#
d7467893 |
| 27-Dec-2002 |
Alan Cox <alc@FreeBSD.org> |
Hold the page queues lock when calling vm_page_flag_clear().
|
#
0cb6c004 |
| 23-Dec-2002 |
Alan Cox <alc@FreeBSD.org> |
- Hold the kernel_object's lock around vm_page_alloc(kernel_object,...). - Hold the page queues lock around vm_page_wakeup().
|
#
0f5f789c |
| 14-Dec-2002 |
Kirk McKusick <mckusick@FreeBSD.org> |
The buffer daemon cannot skip over buffers owned by locked inodes as they may be the only viable ones to flush. Thus it will now wait for an inode lock if the other alternatives will result in rollba
The buffer daemon cannot skip over buffers owned by locked inodes as they may be the only viable ones to flush. Thus it will now wait for an inode lock if the other alternatives will result in rollbacks (and immediate redirtying of the buffer). If only buffers with rollbacks are available, one will be flushed, but then the buffer daemon will wait briefly before proceeding. Failing to wait briefly effectively deadlocks a uniprocessor since every other process writing to that filesystem will wait for the buffer daemon to clean up which takes close enough to forever to feel like a deadlock.
Reported by: Archie Cobbs <archie@dellroad.org> Sponsored by: DARPA & NAI Labs. Approved by: re
show more ...
|
#
178949e0 |
| 23-Nov-2002 |
Alan Cox <alc@FreeBSD.org> |
Hold the page queues/flags lock when calling vm_page_set_validclean().
Approved by: re
|
#
4fec79be |
| 16-Nov-2002 |
Alan Cox <alc@FreeBSD.org> |
Now that pmap_remove_all() is exported by our pmap implementations use it directly.
|
#
d154fb4f |
| 10-Nov-2002 |
Alan Cox <alc@FreeBSD.org> |
When prot is VM_PROT_NONE, call pmap_page_protect() directly rather than indirectly through vm_page_protect(). The one remaining page flag that is updated by vm_page_protect() is already being updat
When prot is VM_PROT_NONE, call pmap_page_protect() directly rather than indirectly through vm_page_protect(). The one remaining page flag that is updated by vm_page_protect() is already being updated by our various pmap implementations.
Note: A later commit will similarly change the VM_PROT_READ case and eliminate vm_page_protect().
show more ...
|
#
bc7bdd50 |
| 18-Oct-2002 |
Kirk McKusick <mckusick@FreeBSD.org> |
When the number of dirty buffers rises too high, the buf_daemon runs to help clean up. After selecting a potential buffer to write, this patch has it acquire a lock on the vnode that owns the buffer
When the number of dirty buffers rises too high, the buf_daemon runs to help clean up. After selecting a potential buffer to write, this patch has it acquire a lock on the vnode that owns the buffer before trying to write it. The vnode lock is necessary to avoid a race with some other process holding the vnode locked and trying to flush its dirty buffers. In particular, if the vnode in question is a snapshot file, then the race can lead to a deadlock. To avoid slowing down the buf_daemon, it does a non-blocking lock request when trying to lock the vnode. If it fails to get the lock it skips over the buffer and continues down its queue looking for buffers to flush.
Sponsored by: DARPA & NAI Labs.
show more ...
|
Revision tags: release/4.7.0_cvs |
|
#
53cc4793 |
| 28-Sep-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove unused includes. Clarify the intention of a while(); Move a local variable to avoid potential name-confusion.
|
#
37c84183 |
| 28-Sep-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Be consistent about "static" functions: if the function is marked static in its prototype, mark it static at the definition too.
Inspired by: FlexeLint warning #512
|
#
54286a04 |
| 28-Sep-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Correctly order VI_UNLOCK(), local variables and block comment.
|
#
089cf428 |
| 26-Sep-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Make biowait() check bio_error before the BIO_ERROR flag, to propery catch internal GEOM use of bio_error.
Sponsored by: DARPA & NAI Labs.
|