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
6420521aa5
Remove GIANT_REQUIRED from vm_pageq_remove().
2003-02-16 06:36:48 +00:00
Alan Cox
814f5c92d7
Remove the acquisition and release of Giant around pmap_growkernel().
...
It's unnecessary for two reasons: (1) Giant is at present already held in
such cases and (2) our various implementations of pmap_growkernel() look to
be MP safe. (For example, for sparc64 the proof of (2) is trivial.)
2003-02-15 20:01:09 +00:00
Alan Cox
53b1963649
Move kernel_vm_end's declaration to pmap.h; add a comment regarding the
...
synchronization of access to kernel_vm_end.
2003-02-15 19:38:23 +00:00
Alan Cox
6b4b77ad34
Add a comment describing how pagedaemon_wakeup() should be used and
...
synchronized.
Suggested by: tegge
2003-02-09 20:40:36 +00:00
Poul-Henning Kamp
886eaaacfa
Change a printf to also tell how many items were left in the zone.
2003-02-04 08:23:18 +00:00
Alan Cox
a1c0a78518
- It's more accurate to say that vm_paging_needed() returns TRUE
...
than a positive number.
- In pagedaemon_wakeup(), set vm_pages_needed to 1 rather than
incrementing it to accomplish the same.
2003-02-02 07:16:40 +00:00
Alan Cox
8e1d8de578
- Convert vm_pageout()'s tsleep()s to msleep()s with the page queue lock.
2003-02-02 01:11:21 +00:00
Alan Cox
8b24576748
- Remove (some) unnecessary explicit initializations to zero.
...
- Style changes to vm_pageout(): declarations and white-space.
2003-02-01 21:55:30 +00:00
Alan Cox
e6f2748cbc
- Convert the tsleep()s in vm_wait() and vm_waitpfault() to msleep()s
...
with the page queue lock.
- Assert that the page queue lock is held in vm_page_free_wakeup().
2003-02-01 21:18:16 +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
Alan Cox
d923c5986e
Add MTX_DUPOK to the initialization of system map locks.
2003-01-25 18:45:55 +00:00
Alfred Perlstein
c3dfdfd132
use 'void *' instead of 'caddr_t' for useracc, kernacc, vslock and vsunlock.
2003-01-21 11:34:57 +00:00
Alfred Perlstein
44956c9863
Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0.
...
Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
2003-01-21 08:56:16 +00:00
Matthew Dillon
8575a17e02
Fix swapping to a file, it was broken when SPECSTRATEGY was introduced.
2003-01-20 20:00:32 +00:00
Matthew Dillon
2d5c7e4506
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
2003-01-20 17:46:48 +00:00
Alan Cox
28ec30cd9f
- Hold the page queues lock around vm_page_hold().
...
- Assert that the page queues lock rather than Giant is held in
vm_page_hold().
2003-01-20 09:24:03 +00:00
Jeff Roberson
ebc85edf5e
- M_WAITOK is 0 and not a real flag. Test for this properly.
...
Submitted by: tmm
Pointy hat to: jeff
2003-01-20 01:32:56 +00:00
David E. O'Brien
c4aa0a2e38
Rev 1.16 renamed VM_METER to VM_TOTAL. This is breaking 3rd-party apps.
...
So add a VM_METER compat define.
Submitted by: Andy Fawcett <andy@athame.co.uk>
2003-01-18 21:14:02 +00:00
Matthew Dillon
e3669cee72
Merge all the various copies of vm_fault_quick() into a single
...
portable copy.
2003-01-16 00:02:21 +00:00
Alan Cox
b0ef8c5fe4
- 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.
2003-01-14 06:57:03 +00:00
Alan Cox
ff2023a5df
Make vm_pageout_page_free() static.
2003-01-14 02:28:39 +00:00
Matthew Dillon
3db161e079
It is possible for an active aio to prevent shared memory from being
...
dereferenced when a process exits due to the vmspace ref-count being
bumped. Change shmexit() and shmexit_myhook() to take a vmspace instead
of a process and call it in vmspace_dofree(). This way if it is missed
in exit1()'s early-resource-free it will still be caught when the zombie is
reaped.
Also fix a potential race in shmexit_myhook() by NULLing out
vmspace->vm_shm prior to calling shm_delete_mapping() and free().
MFC after: 7 days
2003-01-13 23:04:32 +00:00
Poul-Henning Kamp
ca94e7c4ca
We can get past here on a normal vnode as well, so use VOP_STRATEGY if so.
2003-01-13 21:32:16 +00:00
Matthew Dillon
48e3128b34
Bow to the whining masses and change a union back into void *. Retain
...
removal of unnecessary casts and throw in some minor cleanups to see if
anyone complains, just for the hell of it.
2003-01-13 00:33:17 +00:00
Alan Cox
a15700fe32
Make vm_page_alloc() return PG_ZERO only if VM_ALLOC_ZERO is specified.
...
The objective being to eliminate some cases of page queues locking.
(See, for example, vm/vm_fault.c revision 1.160.)
Reviewed by: tegge
(Also, pointed out by tegge that I changed vm_fault.c before changing
vm_page.c. Oops.)
2003-01-12 23:32:46 +00:00
Alan Cox
1761f1829d
vm_fault_copy_entry() needn't clear PG_ZERO because it didn't pass
...
VM_ALLOC_ZERO to vm_page_alloc().
2003-01-12 07:33:16 +00:00
Matthew Dillon
cd72f2180b
Change struct file f_data to un_data, a union of the correct struct
...
pointer types, and remove a huge number of casts from code using it.
Change struct xfile xf_data to xun_data (ABI is still compatible).
If we need to add a #define for f_data and xf_data we can, but I don't
think it will be necessary. There are no operational changes in this
commit.
2003-01-12 01:37:13 +00:00
Alan Cox
b5dc830507
In vm_page_alloc(), fuse two if statements that are conditioned on the same
...
expression.
2003-01-11 20:07:17 +00:00
Matthew Dillon
f7550ecf3f
Make 'sysctl vm.vmtotal' work properly using updated patch from Hiten.
...
(the patch in the PR was stale).
PR: kern/5689
Submitted by: Hiten Pandya <hiten@unixdaemons.com>
2003-01-11 07:29:47 +00:00
Alan Cox
9a032278bd
In vm_page_alloc(), honor VM_ALLOC_ZERO for system and interrupt class
...
requests when the number of free pages is below the reserved threshold.
Previously, VM_ALLOC_ZERO was only honored when the number of free pages
was above the reserved threshold. Honoring it in all cases generally
makes sense, does no harm, and simplifies the code.
2003-01-08 19:58:42 +00:00
Poul-Henning Kamp
5266a767e5
Convert VOP_STRATEGY to VOP_SPECSTRATEGY in the generic getpages and
...
the pager input for small filesystems.
2003-01-05 20:32:03 +00:00
Alan Cox
6c4952c7b4
Use atomic add and subtract to update the global wired page count,
...
cnt.v_wire_count.
2003-01-05 01:31:45 +00:00
Poul-Henning Kamp
f5b11b6e2d
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
2003-01-04 22:10:36 +00:00
Alan Cox
469c4ba59e
Allow kmem_malloc() without Giant if M_NOWAIT is specified.
2003-01-04 19:26:35 +00:00
Alan Cox
4dbeceee96
Use vm_object_lock() and vm_object_unlock() in vm_object_deallocate().
...
(This procedure needs further work, but this change is sufficient for
locking the kmem_object.)
2003-01-04 19:23:19 +00:00
Alan Cox
009f3e7a1e
Refine the assertions in vm_page_alloc().
2003-01-04 19:07:13 +00:00
Alan Cox
5440b5a974
Refine the assertion in vm_object_clear_flag() to allow operation on the
...
kmem_object without Giant. In that case, assert that the kmem_object's
mutex is held.
2003-01-03 19:19:08 +00:00
Poul-Henning Kamp
d6b3a1df18
Revert use of dmmax_mask, I had overlooked a '~'.
...
Spotted by: bde
2003-01-03 19:16:48 +00:00
Poul-Henning Kamp
42c43e6031
Make struct swblock kernel only, to make vm/swap_pager.h userland includable.
...
Move struct swdevt from sys/conf.h to the more appropriate vm/swap_pager.h.
Adjust #include use in libkvm and pstat(8) to match.
2003-01-03 16:23:12 +00:00
Poul-Henning Kamp
c410df597b
Avoid extern decls in .c files by putting them in the vm/swap_pager.h
...
include file where they belong.
Share the dmmax_mask variable.
2003-01-03 14:30:46 +00:00
Poul-Henning Kamp
3ccbf2d533
Use correct _VM_SWAP_PAGER_H_ to check for multiple inclusion.
2003-01-03 14:22:52 +00:00
Poul-Henning Kamp
69fd75d094
Retire sys/dmap.h by including the two lines of it which matters
...
directly in vm/vm_swap.c.
2003-01-03 09:55:05 +00:00
Alan Cox
a6864937e2
Lock the vm object when performing vm_object_clear_flag().
2003-01-03 09:15:43 +00:00
Poul-Henning Kamp
862702306b
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.
2003-01-03 06:32:15 +00:00
Alan Cox
49247edca6
Add vm map and vm object locking to vmtotal().
2003-01-03 05:52:02 +00:00
Alan Cox
81e4e48d24
Lock the vm object when performing vm_object_clear_flag().
2003-01-02 09:09:27 +00:00
Alan Cox
d61e1287a4
Update the assertions in vm_page_insert() and vm_page_lookup() to reflect
...
locking of the kmem_object.
2003-01-01 19:45:36 +00:00
Jens Schweikhardt
9d5abbddbf
Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup,
...
especially in troff files.
2003-01-01 18:49:04 +00:00
Alan Cox
ea0081b61e
Add a needed #include.
...
Reported by: ia64 tinderbox
2003-01-01 00:13:01 +00:00