Commit Graph

52796 Commits

Author SHA1 Message Date
thorpej
3787c5c3d8 MAP_COPY -> MAP_PRIVATE 1999-06-17 21:09:47 +00:00
thorpej
7675dfedf0 Don't export MAP_COPY to userland. It's deprecated, works like MAP_PRIVATE,
and not described by any standard.
1999-06-17 21:07:55 +00:00
thorpej
01ac9b6529 In sys_mmap():
- rather than treating MAP_COPY like MAP_PRIVATE by sheer virtue of it not
  being MAP_SHARED, actually convert the MAP_COPY flag into MAP_PRIVATE.
- return EINVAL if MAP_SHARED and MAP_PRIVATE are both included in flags.
1999-06-17 21:05:19 +00:00
tls
3e2a95b2e4 add FreeBSD's malloc, compiled in only if MALLOC_NEW is set in mk.conf 1999-06-17 19:33:36 +00:00
thorpej
0288ffb53a pmap_change_wiring() -> pmap_unwire(). 1999-06-17 19:23:20 +00:00
thorpej
f5a527bb4e Remove pmap_pageable(); no pmap implements it, and it is not really useful,
because pmap_enter()/pmap_change_wiring() (soon to be pmap_unwire())
communicate the information in greater detail.
1999-06-17 18:21:21 +00:00
bouyer
cc6eca7553 mbuf should be allocated with M_DONTWAIT in ether_output(). This caused panics
when routing atalk.
1999-06-17 17:27:13 +00:00
thorpej
12347b2657 Make uvm_vslock() return the error code from uvm_fault_wire(). All places
which use uvm_vslock() should now test the return value.  If it's not
KERN_SUCCESS, wiring the pages failed, so the operation which is using
uvm_vslock() should error out.

XXX We currently just EFAULT a failed uvm_vslock().  We may want to do
more about translating error codes in the future.
1999-06-17 15:47:22 +00:00
leo
ffd3da04d4 Comply with the changes Jason suggested yesterday. A copy of his log message:
Don't (ab)use uvm_map_pageable() to allocate PT pages.  Instead, do
  some internal reference counting on PT pages.  We still allocate them
  with the page fault routine (a wire-fault, now), but no longer free
  PT pages from pmap_pageable().
1999-06-17 07:59:16 +00:00
tsubai
a8d7da0d21 Add "trackpad" definition. 1999-06-17 06:59:05 +00:00
thorpej
1f97ad987f In uvm_useracc(), make sure we have a read lock on the map before
calling uvm_map_checkprot().
1999-06-17 05:57:33 +00:00
christos
717ef4f35b Add -u flag, that prevents sup from attempting to restore a and m times
on the received files.
1999-06-17 05:11:47 +00:00
mjacob
92f90fcb92 STK 9490 && SD-3 drives incorrectly quirked as not supporting the LOAD command.
Anyway, just because a drive doesn't support the LOAD (to BOT) command does
not mean that the drive doesn't support the UNLOAD command. Also note and
print errors in rewinds and unloads (and errors in writing closing filemarks
for same).
1999-06-17 04:20:55 +00:00
thorpej
f274deb90a The i386 and pc532 pmaps are officially fixed. 1999-06-17 00:24:10 +00:00
thorpej
f51688dd8b PMAP_NEW is no longer optional on the pc532; the old pmap's page table
allocation strategy no longer works at all.  Move pmap.new.* to pmap.*.

To read the revision history of PMAP_NEW up until this merge, use cvs
rlog of the old pmap.new.* files.
1999-06-17 00:22:41 +00:00
thorpej
5c9f5c95a4 Goodbye pmap.new.h 1999-06-17 00:12:40 +00:00
thorpej
e2442268e9 PMAP_NEW is no longer optional on the i386; the old pmap's page table
allocation strategy no longer works at all.  Move pmap.new.* to pmap.*.

To read the revision history of PMAP_NEW up until this merge, use cvs
rlog of the old pmap.new.* files.
1999-06-17 00:12:10 +00:00
thorpej
01d1ebf115 Note that MCL_FUTURE is not yet fully implented in the BUGS section. 1999-06-16 23:32:17 +00:00
thorpej
9fdf52a910 Note POSIX 1003.1b-1993. 1999-06-16 23:30:28 +00:00
thorpej
6cb6c24690 The (incorrect) nesting behavior of mlock(2) no longer exists. 1999-06-16 23:14:59 +00:00
thorpej
cf110d86e7 1.4D -- semantics of uvm_map_pageable() changed. 1999-06-16 23:10:51 +00:00
thorpej
d1d9b366cd When unwiring a range in uvm_fault_unwire_locked(), don't call
pmap_change_wiring(...,FALSE) unless the map entry claims the address
is unwired.  This fixes the following scenario, as described on
tech-kern@netbsd.org on Wed 6/16/1999 12:25:23:

	- User mlock(2)'s a buffer, to guarantee it will never become
	  non-resident while he is using it.

	- User then does physio to that buffer.  Physio calls uvm_vslock()
	  to lock down the pages and ensure that page faults do not happen
	  while the I/O is in progress (possibly in interrupt context).

	- Physio does the I/O.

	- Physio calls uvm_vsunlock().  This calls uvm_fault_unwire().

	  >>> HERE IS WHERE THE PROBLEM OCCURS <<<

	  uvm_fault_unwire() calls pmap_change_wiring(..., FALSE),
	  which now gives the pmap free reign to recycle the mapping
	  information for that page, which is illegal; the mapping is
	  still wired (due to the mlock(2)), but now access of the
	  page could cause a non-protection page fault (disallowed).

	  NOTE: This could eventually lead to a panic when the user
	  subsequently munlock(2)'s the buffer and the mapping info
	  has been recycled for use by another mapping!
1999-06-16 23:02:40 +00:00
thorpej
b861180119 * Rename uvm_fault_unwire() to uvm_fault_unwire_locked(), and require that
the map be at least read-locked to call this function.  This requirement
  will be taken advantage of in a future commit.
* Write a uvm_fault_unwire() wrapper which read-locks the map and calls
  uvm_fault_unwire_locked().
* Update the comments describing the locking contraints of uvm_fault_wire()
  and uvm_fault_unwire().
1999-06-16 22:11:23 +00:00
tron
caca5dac34 Note that bebox and i386 use "/dev/rcd0d" instead of "/dev/rcd0c".
Fixes PR kern/7775 by Eric Mumpower.
1999-06-16 21:18:42 +00:00
is
b5937495f5 Fix typo. 1999-06-16 20:47:57 +00:00
is
38f1211404 Add sanity check for MTU size in fragmentation required packets. 1999-06-16 20:43:48 +00:00
is
847d4766be Factor out common code in the fragmentation required branch. 1999-06-16 20:10:07 +00:00
thorpej
42c671ffba Modify uvm_map_pageable() and uvm_map_pageable_all() to follow POSIX 1003.1b
semantics.  That is, regardless of the number of mlock/mlockall calls,
an munlock/munlockall actually unlocks the region (i.e. sets wiring count
to 0).

Add a comment describing why uvm_map_pageable() should not be used for
transient page wirings (e.g. for physio) -- note, it's currently only
(ab)used in this way by a few pieces of code which are known to be
broken, i.e. the Amiga and Atari pmaps, and i386 and pc532 if PMAP_NEW is
not used.  The i386 GDT code uses uvm_map_pageable(), but in a safe
way, and could be trivially converted to use uvm_fault_wire() instead.
1999-06-16 19:34:24 +00:00
thorpej
23c6eb95d3 Remove a incorrect-and-no-longer-relevant comment. 1999-06-16 18:43:28 +00:00
thorpej
26879cb8fb Clean up some comments. 1999-06-16 17:43:49 +00:00
minoura
ff8fb3ef82 Remove extra ]. 1999-06-16 17:25:39 +00:00
tron
cf71eb8d35 Correct wrong conversion specifications in calls to syslog(3). 1999-06-16 16:34:29 +00:00
kleink
8788923e6a Turn bool, true and false into an enumeration and enumeration constants to
avoid integer promotion warnings.
1999-06-16 15:41:24 +00:00
kleink
2b0484a3b1 Pasto. 1999-06-16 14:24:11 +00:00
kleink
f5326607ab allocm, freem: one step closer to reality. 1999-06-16 14:19:27 +00:00
is
a11ec6ccb8 Don't forget to update the UDP length when changing the packet length.
Reported by Johan Danielsson in PR 7781; the fix is an updated version
(by the same person) of the patch in the PR.
1999-06-16 13:52:58 +00:00
is
6f6fd8467a Cosmetics: a) add missing \n-s, b) this is ntohs, not htons, here. 1999-06-16 13:26:16 +00:00
tsubai
c28bad1d51 Define PowerBook G3 Japanese keyboard. 1999-06-16 08:48:37 +00:00
tsubai
a2e8151f8e Define symbolic name of PMU commands. 1999-06-16 07:43:58 +00:00
pk
b6429ec3c5 In scsipi_done(), call scsipi_free_xs() at splbio(). 1999-06-16 07:35:31 +00:00
thorpej
ee9703dea9 Add a macro to test if a map entry is wired. 1999-06-16 00:29:04 +00:00
thorpej
2625387d1f Libc bump, mlockall(2) 1999-06-15 23:32:08 +00:00
thorpej
694cc23026 Add mlockall(2)/munlockall(2). 1999-06-15 23:31:19 +00:00
thorpej
ad528dfdf0 Regen. 1999-06-15 23:29:17 +00:00
thorpej
0cec533f77 Add mlockall at #242 and munlockall at #243. 1999-06-15 23:28:16 +00:00
thorpej
c5a43ae10c Several changes, developed and tested concurrently:
* Provide POSIX 1003.1b mlockall(2) and munlockall(2) system calls.
  MCL_CURRENT is presently implemented.  MCL_FUTURE is not fully
  implemented.  Also, the same one-unlock-for-every-lock caveat
  currently applies here as it does to mlock(2).  This will be
  addressed in a future commit.
* Provide the mincore(2) system call, with the same semantics as
  Solaris.
* Clean up the error recovery in uvm_map_pageable().
* Fix a bug where a process would hang if attempting to mlock a
  zero-fill region where none of the pages in that region are resident.
  [ This fix has been submitted for inclusion in 1.4.1 ]
1999-06-15 23:27:47 +00:00
ad
10b0c75443 - Don't even try to emulate WSATTR_HILIT on mono displays
- WSATTR_REVERSE is a capability of both mono/color
1999-06-15 22:34:45 +00:00
perseant
0486add127 The cleaner now marks empty segments clean without having to read their
contents, a substantial optimization if the work load is right: if enough
empty segments are available, the cleaner never has to read or write *any*
blocks except those on the Ifile.  When the cleaner wakes up it marks all
empty segments clean before deciding whether any further segments need to
be cleaned.

Fixed overflow bugs in the cleaner's handling of the cost/benefit metric
for empty segments.
1999-06-15 22:33:48 +00:00
perseant
a818a47169 Minor changes to the segment live bytes calculation. In particular, fixed
a bug in fragment extension that could run the count negative.  Also, don't
overcount for inodes, and don't count segment summaries.  Thus, for empty
segments the live bytes count should now be exactly zero.
1999-06-15 22:25:41 +00:00
thorpej
602d8e81f7 Don't (ab)use uvm_map_pageable() to allocate PT pages. Instead, do
some internal reference counting on PT pages.  We still allocate them
with the page fault routine (a wire-fault, now), but no longer free
PT pages from pmap_pageable().
1999-06-15 22:18:07 +00:00