Alan Cox
1dabe30610
Remove GIANT_REQUIRED from vm_object_shadow().
2003-09-17 07:00:14 +00:00
Alan Cox
82f9defeaf
Eliminate the use of Giant from vm_object_reference().
2003-09-15 05:58:27 +00:00
Alan Cox
b881da26a5
There is no need for an atomic increment on the vm object's generation
...
count in _vm_object_allocate(). (Access to the generation count is
governed by the vm object's lock.) Note: the introduction of the
atomic increment in revision 1.238 appears to be an accident. The
purpose of that commit was to fix an Alpha-specific bug in UMA's
debugging code.
2003-09-13 20:07:26 +00:00
Poul-Henning Kamp
07f81f9159
Remove an unused variable.
2003-08-06 12:09:34 +00:00
Alan Cox
9c65e7a336
Allow vm_object_reference() on kernel_object without Giant.
2003-07-27 05:43:58 +00:00
Poul-Henning Kamp
b4ae478044
Don't inline very large functions.
...
Gcc has silently not been doing this for a long time.
2003-07-22 09:27:58 +00:00
Alan Cox
7ca33ad1e8
Complete the vm object locking in vm_object_backing_scan(); specifically,
...
deal with the case where we need to sleep on a busy page with two vm object
locks held.
2003-06-22 02:35:06 +00:00
Alan Cox
06ecade7d8
- Increase the scope of the vm object lock in vm_object_collapse().
...
- Assert that the vm object and its backing vm object are both locked in
vm_object_qcollapse().
2003-06-21 04:14:48 +00:00
David E. O'Brien
874651b13c
Use __FBSDID().
2003-06-11 23:50:51 +00:00
Alan Cox
3471677cc9
Don't use vm_object_set_flag() to initialize the vm object's flags.
2003-06-09 06:50:02 +00:00
Alan Cox
138449dc19
- 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
Alan Cox
d7fc221044
Pass the vm object to vm_object_collapse() with its lock held.
2003-06-07 02:29:17 +00:00
Alan Cox
40b808a842
- Extend the scope of the backing object's lock in vm_object_collapse().
2003-06-05 20:55:27 +00:00
Alan Cox
b72b0115ee
- 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
Alan Cox
3b68228cce
- 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
Alan Cox
bdbfbaafcc
Add vm object locking to vm_object_coalesce().
2003-06-03 19:37:01 +00:00
Alan Cox
cccf11b865
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
Alan Cox
34567de7fc
Add vm object locking to vm_object_madvise().
2003-05-31 19:40:57 +00:00
Alan Cox
1c500307d1
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
Alan Cox
3a12f5da1f
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
Alan Cox
658ad5fff5
Lock the vm_object when performing vm_pager_deallocate().
2003-05-06 02:45:28 +00:00
Alan Cox
f7dd7b637b
Extend the scope of the vm_object lock in vm_object_terminate().
2003-05-04 19:23:40 +00:00
Alan Cox
ad682c4825
Lock the vm_object on entry to vm_object_vndeallocate().
2003-05-03 20:28:26 +00:00
Alan Cox
bff99f0d12
- 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
Alan Cox
f92039a1fc
Move a declaration to its proper place.
2003-05-03 04:21:16 +00:00
Alan Cox
6be365253d
Lock the vm_object when updating its shadow list.
2003-05-02 04:55:21 +00:00
Alan Cox
4f7c7f6e23
Simplify the removal of a shadow object in vm_object_collapse().
2003-05-02 03:00:21 +00:00
Alan Cox
8e3a76fb6f
Extend the scope of the vm_object locking in vm_object_split().
2003-05-01 05:06:33 +00:00
Alan Cox
1534781737
- 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
Alan Cox
ed6a786313
- Define VM_OBJECT_LOCK_INIT().
...
- Avoid repeatedly mtx_init()ing and mtx_destroy()ing the vm_object's lock
using UMA's uminit callback, in this case, vm_object_zinit().
2003-04-28 03:45:35 +00:00
Alan Cox
c9917419ef
- Tell witness that holding two or more vm_object locks is okay.
...
- In vm_object_deallocate(), lock the child when removing the parent
from the child's shadow list.
2003-04-27 20:07:57 +00:00
Alan Cox
570a2f4ac5
Various changes to vm_object_shadow(): (1) update the vm_object locking,
...
(2) remove a pointless assertion, and (3) make a trivial change to a
comment.
2003-04-27 05:43:03 +00:00
Alan Cox
ecde4b3218
Various changes to vm_object_page_remove():
...
- Eliminate an odd, special-case feature:
if start == end == 0 then all pages are removed. Only one caller
used this feature and that caller can trivially pass the object's
size.
- Assert that the vm_object is locked on entry; don't bother testing
for a NULL vm_object.
- Style: Fix lines that are longer than 80 characters.
2003-04-26 23:41:30 +00:00
Alan Cox
c829b9d0fc
- Lock the vm_object on entry to vm_object_terminate().
2003-04-26 19:36:19 +00:00
Alan Cox
1ca5895341
- Convert vm_object_pip_wait() from using tsleep() to msleep().
...
- Make vm_object_pip_sleep() static.
- Lock the vm_object when performing vm_object_pip_wait().
2003-04-26 18:33:18 +00:00
Alan Cox
155080d31e
- Extend the scope of two existing vm_object locks to cover
...
swap_pager_freespace().
2003-04-26 05:30:56 +00:00
Alan Cox
b6e48e0372
- Acquire the vm_object's lock when performing vm_object_page_clean().
...
- Add a parameter to vm_pageout_flush() that tells vm_pageout_flush()
whether its caller has locked the vm_object. (This is a temporary
measure to bootstrap vm_object locking.)
2003-04-24 04:31:25 +00:00
Alan Cox
d647a0ed5a
- Assert that the vm_object is locked in vm_object_clear_flag(),
...
vm_object_pip_add() and vm_object_pip_wakeup().
- Remove GIANT_REQUIRED from vm_object_pip_subtract() and
vm_object_pip_subtract().
- Lock the vm_object when performing vm_object_page_remove().
2003-04-21 06:33:52 +00:00
Alan Cox
d7a013c320
- Lock the vm_object when performing either vm_object_clear_flag() or
...
vm_object_pip_wakeup().
2003-04-20 23:23:41 +00:00
Alan Cox
d22bc7101c
- Lock the vm_object when performing vm_object_pip_add().
2003-04-20 03:41:21 +00:00
Alan Cox
0fa05eae77
- Lock the vm_object when performing vm_object_pip_subtract().
...
- Assert that the vm_object lock is held in vm_object_pip_subtract().
2003-04-19 22:11:41 +00:00
Alan Cox
0d420ad3e6
- Lock the vm_object when performing vm_object_pip_wakeupn().
...
- Assert that the vm_object lock is held in vm_object_pip_wakeupn().
- Add a new macro VM_OBJECT_LOCK_ASSERT().
2003-04-19 21:15:44 +00:00
Alan Cox
d1dc776d9d
Lock some manipulations of the vm object's flags.
2003-04-13 23:43:34 +00:00
Alan Cox
e2479b4fc3
Lock some manipulations of the vm object's flags.
2003-04-13 20:22:02 +00:00
Alan Cox
f279b88deb
Permit vm_object_pip_add() and vm_object_pip_wakeup() on the kmem_object
...
without Giant held.
2003-04-13 00:43:48 +00:00
Jake Burkholder
227f9a1c58
- Add vm_paddr_t, a physical address type. This is required for systems
...
where physical addresses larger than virtual addresses, such as i386s
with PAE.
- Use this to represent physical addresses in the MI vm system and in the
i386 pmap code. This also changes the paddr parameter to d_mmap_t.
- Fix printf formats to handle physical addresses >4G in the i386 memory
detection code, and due to kvtop returning vm_paddr_t instead of u_long.
Note that this is a name change only; vm_paddr_t is still the same as
vm_offset_t on all currently supported platforms.
Sponsored by: DARPA, Network Associates Laboratories
Discussed with: re, phk (cdevsw change)
2003-03-25 00:07:06 +00:00
Poul-Henning Kamp
b4b138c27f
Including <sys/stdint.h> is (almost?) universally only to be able to use
...
%j in printfs, so put a newsted include in <sys/systm.h> where the printf
prototype lives and save everybody else the trouble.
2003-03-18 08:45:25 +00:00
Alan Cox
09c80124a3
Remove ENABLE_VFS_IOOPT. It is a long unfinished work-in-progress.
...
Discussed on: arch@
2003-03-06 03:41:02 +00:00
Warner Losh
a163d034fa
Back out M_* changes, per decision of the TRB.
...
Approved by: trb
2003-02-19 05:47:46 +00:00
Alan Cox
75741c0497
Simplify vm_object_page_remove(): The object's memq is now ordered. The
...
two cases that existed before for performance optimization purposes can
be reduced to one.
2003-01-27 01:12:35 +00:00