Commit Graph

69602 Commits

Author SHA1 Message Date
itojun 2192675fb1 move file static variable into auto variable, for better thread safety.
(not really required for big lock MP).  sync with kame
2000-09-09 16:15:47 +00:00
itojun f8481d085e add attribute(packed).
From: Alfred Perlstein <bright@wintelcom.net>
2000-09-09 11:42:22 +00:00
pk 3011e0816b Revise pv_table_map(): to simplify calculations, pv_table[] now covers
all of physical memory, i.e. it conceptually is pv_table[0..avail_end].
The previous version could lead to an off-by-one error in the page allocation
for pv_table[] in some memory configurations.
2000-09-09 10:24:34 +00:00
jsm c6bbb5288d Store copy of username with strdup rather than using a fixed length
buffer.  Also make initialization functions and arrays static.
2000-09-09 09:37:58 +00:00
jsm ce85e35a32 Put prototypes in alphabetical order. 2000-09-09 09:36:23 +00:00
nisimura 59178ec7b4 Use dev/{rasops,wsfont} instead of awesome dev/rcons. Still much to do
before being useful.
2000-09-09 06:15:17 +00:00
nisimura 48ff19c98b u_char -> u_int for function argument and return of Zilog register
manipulation helper functions; no loss, no gain, for Alpha processor.
2000-09-09 06:08:42 +00:00
perseant 9c7f8050f4 Various bug-fixes to LFS, to wit:
Kernel:

* Add runtime quantity lfs_ravail, the number of disk-blocks reserved
  for writing.  Writes to the filesystem first reserve a maximum amount
  of blocks before their write is allowed to proceed; after the blocks
  are allocated the reserved total is reduced by a corresponding amount.

  If the lfs_reserve function cannot immediately reserve the requested
  number of blocks, the inode is unlocked, and the thread sleeps until
  the cleaner has made enough space available for the blocks to be
  reserved.  In this way large files can be written to the filesystem
  (or, smaller files can be written to a nearly-full but thoroughly
  clean filesystem) and the cleaner can still function properly.

* Remove explicit switching on dlfs_minfreeseg from the kernel code; it
  is now merely a fs-creation parameter used to compute dlfs_avail and
  dlfs_bfree (and used by fsck_lfs(8) to check their accuracy).  Its
  former role is better assumed by a properly computed dlfs_avail.

* Bounds-check inode numbers submitted through lfs_bmapv and lfs_markv.
  This prevents a panic, but, if the cleaner is feeding the filesystem
  the wrong data, you are still in a world of hurt.

* Cleanup: remove explicit references of DEV_BSIZE in favor of
  btodb()/dbtob().

lfs_cleanerd:

* Make -n mean "send N segments' blocks through a single call to
  lfs_markv".  Previously it had meant "clean N segments though N calls
  to lfs_markv, before looking again to see if more need to be cleaned".
  The new behavior gives better packing of direct data on disk with as
  little metadata as possible, largely alleviating the problem that the
  cleaner can consume more disk through inefficient use of metadata than
  it frees by moving dirty data away from clean "holes" to produce
  entirely clean segments.

* Make -b mean "read as many segments as necessary to write N segments
  of dirty data back to disk", rather than its former meaning of "read
  as many segments as necessary to free N segments worth of space".  The
  new meaning, combined with the new -n behavior described above,
  further aids in cleaning storage efficiency as entire segments can be
  written at once, using as few blocks as possible for segment summaries
  and inode blocks.

* Make the cleaner take note of segments which could not be cleaned due
  to error, and not attempt to clean them until they are entirely free
  of dirty blocks.  This prevents the case in which a cleanerd running
  with -n 1 and without -b (formerly the default) would spin trying
  repeatedly to clean a corrupt segment, while the remaining space
  filled and deadlocked the filesystem.

* Update the lfs_cleanerd manual page to describe all the options,
  including the changes mentioned here (in particular, the -b and -n
  flags were previously undocumented).

fsck_lfs:

* Check, and optionally fix, lfs_avail (to an exact figure) and
  lfs_bfree (within a margin of error) in pass 5.

newfs_lfs:

* Reduce the default dlfs_minfreeseg to 1/20 of the total segments.

* Add a warning if the sgs disklabel field is 16 (the default for FFS'
  cpg, but not usually desirable for LFS' sgs: 5--8 is a better range).

* Change the calculation of lfs_avail and lfs_bfree, corresponding to
  the kernel changes mentioned above.

mount_lfs:

* Add -N and -b options to pass corresponding -n and -b options to
  lfs_cleanerd.

* Default to calling lfs_cleanerd with "-b -n 4".


[All of these changes were largely tested in the 1.5 branch, with the
idea that they (along with previous un-pulled-up work) could be applied
to the branch while it was still in ALPHA2; however my test system has
experienced corruption on another filesystem (/dev/console has gone
missing :^), and, while I believe this unrelated to the LFS changes, I
cannot with good conscience request that the changes be pulled up.]
2000-09-09 04:49:54 +00:00
perseant 988a012d50 Change dlfs_dmeta and dlfs_avail to signed quantities, to prevent
underflow errors, visible in userland as impossibly high values
returned from df(1).
2000-09-09 04:18:28 +00:00
perseant 8cb6723a92 Fix a buffer-cache corrupting bug in lfs_writeseg, where brelse could
be improperly used on an already-queued buffer.
2000-09-09 04:13:43 +00:00
perseant 4446817aca Make sure to unmark B_DELWRI on blocks freed due to truncation to a non-zero
file length.  Should fix PR #s 10551 and 10831.
2000-09-09 03:47:05 +00:00
hubertf caaae66450 Move aside X link before /etc, and move the X link back if moving /etc fails.
Else if moving X fails, the system will end with no /etc.
2000-09-09 00:21:36 +00:00
msaitoh 3a0bdcde18 check _STANDALONE macro, too. 2000-09-09 00:16:21 +00:00
tshiozak fcc188c19e Disallow '/' character in LC_* and LANG environment variable, and
prevent to look up PATH_LOCALE and NLSPATH on setuid/setgid executable.
This is important to prevent to cause some kind of security hole.
2000-09-08 20:56:36 +00:00
tron cb01317d62 Final fix to make this work without object directories again. 2000-09-08 19:57:05 +00:00
msaitoh 2b1674cc62 remove extra #endif 2000-09-08 19:52:13 +00:00
tron 3220c30427 Readd at signs before commands which were removed for debugging. 2000-09-08 19:50:52 +00:00
msaitoh 2cb1f4181a sync with i386's revision 1.133:
It's legal to mmap pages in the lower part of the stack (<limit),
	and use them, so allow this by relaxing the check for it.
2000-09-08 19:48:12 +00:00
tron 278e796ec6 Do last change differently: "(unset MAKEOBJDIRPREFIX || true)" is a NOP,
use "MAKEOBJDIRPREFIX= && unset MAKEOBJDIRPREFIX" instead.
2000-09-08 19:48:00 +00:00
tron f5cb2786f8 Use "(unset MAKEOBJDIRPREFIX || true)" because unset return an error code
if the variable was not set before.
2000-09-08 19:45:45 +00:00
chs e3b6ec1d77 remove extra paren so this compiles again. 2000-09-08 19:26:17 +00:00
msaitoh 772c846544 delete an obsolete comment. 2000-09-08 18:46:39 +00:00
jsm a7c82eea02 Spelling and punctuation corrections or improvements from OpenBSD. 2000-09-08 17:25:31 +00:00
jsm af3dee978f Make code clearer; add a macro ROOMDESC for the number of times a room
should be visited for the short description only to be used, and don't
increment beenthere[position] beyond this value.  From OpenBSD.
2000-09-08 17:22:01 +00:00
matt a28f4d4751 Teach crunchgen.c about MAKEOBJDIRPREFIX. 2000-09-08 17:20:47 +00:00
jsm ec240586d1 Manpage improvements based on OpenBSD. 2000-09-08 17:18:36 +00:00
simonb 665eca96e0 In wsdisplay_usl_ioctl2(), use a u_long for the request to be passed off
to wsdisplay_internal_ioctl() instead of an int.
With this, the pcvt compat ioctl's work on an Alpha and probably other
64 bit archs.
2000-09-08 15:32:57 +00:00
mjl e267ac2359 Oops, errx() not err(). 2000-09-08 13:14:33 +00:00
mjl 680cd1fdaa Un-__P, ANSI- and constify. 2000-09-08 13:11:03 +00:00
mjl f9e3c9099b Use err() 2000-09-08 13:06:13 +00:00
mjl 88a0bc30c2 Un-__P and ANSIfy. 2000-09-08 12:57:28 +00:00
mjl 8de1362608 Use errx(), add usage(). 2000-09-08 12:55:36 +00:00
ad 237007cd69 - Set CCB_ACTIVE flag in all cases when DIAGNOSTIC is defined.
- Correct arguments to bus_dmamap_create().
2000-09-08 12:16:17 +00:00
lukem 52b579665e always include <netdb.h>, not just when INET6 is defined.
resolves PR [bin/10970] by Richard Earnshaw <rearnsha@cambridge.arm.com>>
2000-09-08 11:54:53 +00:00
ragge d85872dd78 By some reason setstatclockrate() suddenly get called occationally
(it hasn't been called since -94 :-) Remove the panic that happens when
it is called.
2000-09-08 11:41:59 +00:00
tsubai 9fdd44d404 DDB single step and stack trace support. 2000-09-08 10:15:23 +00:00
jeffs bbcf1beea0 In outofworld, keep $sp for DDB case if it looks like a kernel address
so the stacktrace is ok.
2000-09-08 07:24:42 +00:00
toshii 6bc11dce71 In ucomopen(), make sure to call splx() before returning
when initialization fails.
2000-09-08 07:20:52 +00:00
matt 9c01e4e226 deal properly with MAKEOBJDIRPREFIX (which has priority over MAKEOBJDIR so
the MAKEOBJDIR to ${MAKE} has no effect) so we unset MAKEOBJDIRPREFIX before
invoking ${MAKE}
2000-09-08 05:37:59 +00:00
hubertf 71be3a3b99 When upgrading and /usr/X11R6/bin/X is a symlink, move it aside (X.old)
before extracting sets, and move it back afterwards, to save the information
which X server to use.

Adresses PR 10935 by Dan McMahill <dmcmahill@netbsd.org>
2000-09-08 02:50:42 +00:00
oster 3fa62c4642 Make sure we are passing a locked vp to VOP_CLOSE. 2000-09-08 01:36:35 +00:00
augustss 19f36696bc ANSIfy last patch. 2000-09-08 01:27:12 +00:00
augustss 55af72266e Remove comment about isoc not being supported. 2000-09-08 01:11:15 +00:00
augustss 96d1acf3d6 Add isoc support. From FreeBSD via Berndt Josef Wulf <wulf@ping.net.au> 2000-09-08 00:55:26 +00:00
soren f0c15086d2 Regen. 2000-09-07 23:26:41 +00:00
soren 36d7d0f902 s/AT&T Microelectronics/Lucent Technologies/ 2000-09-07 23:26:28 +00:00
fvdl 7f5724ad4c In the case of MAP_ANON, Linux mmap ignores the fd argument completely.
So, always pass -1 to the native syscall in that case, to avoid
errors if a Linux app doesn't specify -1 as the fd (which some do).
2000-09-07 22:20:45 +00:00
jeffs 8f8a7ca780 Shuichiro URATA pointed out that the R4000 needs 3 nops. Other OSs make
it look at casual inspection like 1 nop is needed but play other tricks.
Still have reduced by 1 nop.  Hopefully this covers the NEC 41[x]1.  Could
not find info for those processors.
2000-09-07 20:31:02 +00:00
thorpej a1139ee535 Example config file for enabling large page support. 2000-09-07 18:55:30 +00:00
thorpej 2fc18ed7a4 Replace the old db_memrw.c with the hp300 version, modified for i386
and large page support.  This version is a bit more intelligent about
how it deals with kernel text pages.

Now that this is fixed, don't map the kernel text read-write if
DDB is configured.
2000-09-07 18:46:19 +00:00