phk
24cc9156fe
Add the same KASSERT to all VOP_STRATEGY and VOP_SPECSTRATEGY implementations
...
to check that the buffer points to the correct vnode.
2003-06-15 18:53:00 +00:00
alc
ff1c2851e3
Remove an unnecessary forward declaration.
2003-06-15 07:28:33 +00:00
alc
a7a826b5cb
Use #ifdef __alpha__, not __alpha.
2003-06-15 00:12:42 +00:00
alc
83f108b04d
Migrate the thread stack management functions from the machine-dependent
...
to the machine-independent parts of the VM. At the same time, this
introduces vm object locking for the non-i386 platforms.
Two details:
1. KSTACK_GUARD has been removed in favor of KSTACK_GUARD_PAGES. The
different machine-dependent implementations used various combinations
of KSTACK_GUARD and KSTACK_GUARD_PAGES. To disable guard page, set
KSTACK_GUARD_PAGES to 0.
2. Remove the (unnecessary) clearing of PG_ZERO in vm_thread_new. In
5.x, (but not 4.x,) PG_ZERO can only be set if VM_ALLOC_ZERO is passed
to vm_page_alloc() or vm_page_grab().
2003-06-14 23:23:55 +00:00
alc
d20c30720b
Move the *_new_altkstack() and *_dispose_altkstack() functions out of the
...
various pmap implementations into the machine-independent vm. They were
all identical.
2003-06-14 06:20:25 +00:00
alc
d2198cef89
Extend the scope of the vm object lock in swp_pager_async_iodone() to cover
...
a vm_page_free().
2003-06-13 06:17:42 +00:00
alc
d66a37a0f2
Add vm object locking to various pagers' "get pages" methods, i386 stack
...
management functions, and a u area management function.
2003-06-13 03:02:28 +00:00
obrien
b0678d7a44
Use __FBSDID().
2003-06-11 23:50:51 +00:00
peter
fda03b7cfc
GC unused cpu_wait() function
2003-06-11 05:20:33 +00:00
alc
cad0ed280c
- Finish vm object and page locking in vnode_pager_setsize().
...
- Make some small style changes to vnode_pager_setsize(); most notably,
move two comments to a more logical place.
2003-06-10 20:28:41 +00:00
phk
07cd5a08f3
Revert last commit, I have no idea what happened.
2003-06-09 22:51:36 +00:00
phk
5411462454
A white-space nit I noticed.
2003-06-09 19:40:34 +00:00
alc
f13256329b
Hold the vm object's lock when performing vm_page_lookup().
2003-06-09 07:01:05 +00:00
alc
fd950733b7
Don't use vm_object_set_flag() to initialize the vm object's flags.
2003-06-09 06:50:02 +00:00
alc
6a3f0ec4b1
- Properly handle the paging_in_progress case on two vm objects in
...
vm_object_deallocate().
- Remove vm_object_pip_sleep().
2003-06-08 23:01:24 +00:00
alc
3812b42f43
Lock the kernel object in kmem_alloc().
2003-06-07 23:24:10 +00:00
alc
e448f32b52
Teach vm_page_grab() how to handle the vm object's lock.
2003-06-07 23:22:04 +00:00
alc
c57f179395
Assert that the vm object is locked on entry to swap_pager_freespace().
2003-06-07 20:43:16 +00:00
alc
9b7a0e2182
Pass the vm object to vm_object_collapse() with its lock held.
2003-06-07 02:29:17 +00:00
phk
760be5c8ca
Fix NFS file swapping, I broke it 3 months ago it seems.
2003-06-05 21:57:19 +00:00
alc
37fef77ad3
- Extend the scope of the backing object's lock in vm_object_collapse().
2003-06-05 20:55:27 +00:00
alc
3be7bee315
- Add further vm object locking to vm_object_deallocate(), specifically,
...
for accessing a vm object's shadows.
2003-06-04 21:07:42 +00:00
alc
f9029b703d
- Add VM_OBJECT_TRYLOCK().
2003-06-04 19:59:23 +00:00
alc
1c0932407b
- Add vm object locking to vm_object_deallocate(). (Still more
...
changes are required.)
- Remove special-case macros for kmem object locking. They are
no longer used.
2003-06-04 06:00:55 +00:00
alc
16c442a3a1
Add vm object locking to vm_object_coalesce().
2003-06-03 19:37:01 +00:00
alc
5ba1cfe547
Change kernel_object and kmem_object to (&kernel_object_store) and
...
(&kmem_object_store), respectively. This allows the address of these
objects to be resolved at link-time rather than run-time.
2003-06-01 23:59:48 +00:00
phk
22c73f78e7
Prepend _ to internal union members to avoid ambiguity.
...
Found by: FlexeLint
2003-05-31 19:52:15 +00:00
phk
fb8b6c2546
Remove unused variables
...
Found by: FlexeLint
2003-05-31 19:51:05 +00:00
alc
bd43f8c10d
Add vm object locking to vm_object_madvise().
2003-05-31 19:40:57 +00:00
das
b8e4e0e3ab
If we seem to be out of VM, don't allow the pagedaemon to kill
...
processes in the first pass. Among other things, this will give
us a chance to launder vnode-backed pages before concluding that
we need more swap. This is particularly useful for systems that
have no swap.
While here, update a comment and remove some long-unused code.
Reported by: Lucky Green <shamrock@cypherpunks.to>
Suggested by: dillon
Approved by: re (rwatson)
2003-05-19 00:51:07 +00:00
alc
e90c007e3f
Reduce the size of a vm object by converting its shadow list from a TAILQ
...
to a LIST.
Approved by: re (rwatson)
2003-05-18 04:10:16 +00:00
jhb
89a4eb17de
- Merge struct procsig with struct sigacts.
...
- Move struct sigacts out of the u-area and malloc() it using the
M_SUBPROC malloc bucket.
- Add a small sigacts_*() API for managing sigacts structures: sigacts_alloc(),
sigacts_free(), sigacts_copy(), sigacts_share(), and sigacts_shared().
- Remove the p_sigignore, p_sigacts, and p_sigcatch macros.
- Add a mutex to struct sigacts that protects all the members of the struct.
- Add sigacts locking.
- Remove Giant from nosys(), kill(), killpg(), and kern_sigaction() now
that sigacts is locked.
- Several in-kernel functions such as psignal(), tdsignal(), trapsignal(),
and thread_stopped() are now MP safe.
Reviewed by: arch@
Approved by: re (rwatson)
2003-05-13 20:36:02 +00:00
alc
2a876b006b
Give the kmem object's mutex a unique name, instead of "vm object",
...
to avoid false reports of lock-order reversal with a system map mutex.
Approved by: re (jhb)
2003-05-09 02:13:23 +00:00
alc
d18bfec38d
Lock the vm_object when performing vm_pager_deallocate().
2003-05-06 02:45:28 +00:00
alc
65684800f0
Extend the scope of the vm_object lock in vm_object_terminate().
2003-05-04 19:23:40 +00:00
alc
0f78bf82ba
Avoid a lock-order reversal and implement vm_object locking
...
in vm_pageout_page_free().
2003-05-04 06:56:27 +00:00
alc
f9966ce9e8
Lock the vm_object on entry to vm_object_vndeallocate().
2003-05-03 20:28:26 +00:00
alc
410b675ed9
- Revert kern/vfs_subr.c revision 1.444. The vm_object's size isn't
...
trustworthy for vnode-backed objects.
- Restore the old behavior of vm_object_page_remove() when the end
of the given range is zero. Add a comment to vm_object_page_remove()
regarding this behavior.
Reported by: iedowse
2003-05-03 08:09:24 +00:00
alc
76bbaa0d89
Move a declaration to its proper place.
2003-05-03 04:21:16 +00:00
alc
da0d4657d3
Lock the vm_object when updating its shadow list.
2003-05-02 04:55:21 +00:00
alc
8a339564b6
Simplify the removal of a shadow object in vm_object_collapse().
2003-05-02 03:00:21 +00:00
alc
9a40fc3cd6
Extend the scope of the vm_object locking in vm_object_split().
2003-05-01 05:06:33 +00:00
alc
c2343f725b
- Update the vm_object locking in vm_object_reference().
...
- Convert some dead code in vm_object_reference() into a comment.
2003-05-01 03:29:20 +00:00
alc
6d3db5a963
Increase the scope of the vm_object lock in vm_map_delete().
2003-04-30 19:18:09 +00:00
alc
f21b29f0c7
Eliminate an unused parameter from vm_pageout_object_deactivate_pages().
2003-04-30 03:08:16 +00:00
alc
668955a3c5
Add vm_object locking to vmspace_swap_count().
2003-04-30 00:43:17 +00:00
alc
ac2712d2c8
Remove unused declarations and definitions.
2003-04-29 18:49:25 +00:00
kan
9468fdaf14
Deprecate machine/limits.h in favor of new sys/limits.h.
...
Change all in-tree consumers to include <sys/limits.h>
Discussed on: standards@
Partially submitted by: Craig Rodrigues <rodrigc@attbi.com>
2003-04-29 13:36:06 +00:00
alc
afa35c49d2
- Lock the vm_object when performing swap_pager_isswapped().
...
- Assert that the vm_object is locked in swap_pager_isswapped().
2003-04-28 17:13:53 +00:00
alc
482e860dda
uma_zone_set_obj() must perform VM_OBJECT_LOCK_INIT() if the caller
...
provides storage for the vm_object.
2003-04-28 06:11:32 +00:00