Commit Graph

448 Commits

Author SHA1 Message Date
dg
b649d7b9c7 Changed swap partition handling/allocation so that it doesn't
require specific partitions be mentioned in the kernel config
file ("swap on foo" is now obsolete).

From Poul-Henning:

The visible effect is this:

As default, unless
        options "NSWAPDEV=23"
is in your config, you will have four swap-devices.
You can swapon(2) any block device you feel like, it doesn't have
to be in the kernel config.

There is a performance/resource win available by getting the NSWAPDEV right
(but only if you have just one swap-device ??), but using that as default
would be too restrictive.

The invisible effect is that:

Swap-handling disappears from the $arch part of the kernel.
It gets a lot simpler (-145 lines) and cleaner.

Reviewed by:	John Dyson, David Greenman
Submitted by:	Poul-Henning Kamp, with minor changes by me.
1995-05-14 03:00:10 +00:00
dg
5e587399a6 pread/pwrite() should be static.
Submitted by:	sef
1995-05-12 21:39:48 +00:00
wollman
448bf32842 The death of `options NODUMP'. Now the dump area can be dynamically
configured (and unconfigured) on the fly.  A sysctl(3) MIB variable is
provided to inspect and modify the dump device setting.
1995-05-12 19:17:31 +00:00
dg
d1d32f6e26 Increased ratio of allowed vnodes on freelist to 1/4th of the total. This
is more representative of worst case situations of 4 files/directory. (If
that last sentence doesn't make any sense, I'm not surprised. It's rather
compilcated how this all fits together....).
This should fix a problem that Ed Hudson has been complaining about where
directories with lots of symlinks could cause excessive disk I/O.
1995-05-12 04:24:53 +00:00
rgrimes
0e1db07cf9 Fix -Wformat warnings from LINT kernel. 1995-05-11 19:26:53 +00:00
wollman
8b37bdba13 Delete two debugging printfs that mistakenly crept in. 1995-05-11 00:16:44 +00:00
wollman
37660997fe Make networking domains drop-ins, through the magic of GNU ld. (Some day,
there may even be LKMs.)  Also, change the internal name of `unixdomain'
to `localdomain' since AF_LOCAL is now the preferred name of this family.
Declare netisr correctly and in the right place.
1995-05-11 00:13:26 +00:00
dg
6d9a56d4ef Unlock the vnode before sleeping on an OBJ_DEAD object. Should fix Bruce's
hang. Fixed some formatting anomolies and removed some unneeded casts.
1995-05-10 18:59:11 +00:00
dg
259aeee121 Improved hashinit panic strings. 1995-05-08 23:11:12 +00:00
bde
ca5a771ab4 Fix reopening of open subdevices for DIOCSYNCSLICEINFO:
Reopen the bdev for the raw partition and not the cdev if only the bdev
was open.
Don't use a bogus limit for the number of partitions to possibly reopen
(bug found by Julian).

Add function dssize() to help fix wdsize() and sdsize().  The slice
layer knows more about (un)open partitions and partition sizes than
the driver layer.
1995-05-08 16:24:08 +00:00
ache
e788121172 Make two "ttyout" ttysleep wmesg unique
Add t_timeout to ttysleep call into ttywrite
1995-05-07 23:53:36 +00:00
bde
cc1303d711 Fix style inconsistencies in the last few commits. 1995-05-07 07:06:36 +00:00
bde
562a666ce0 Test the correct nonblocking flag in ttylclose(). IO_NDELAY is only valid
in read() and write().  FNONBLOCK is valid in ioctl() and close().

The bug caused hung ptys when a process talked to itself using nonblocking
i/o and exited while the slave pty had output to flush.  ttywait() was
called and hung.  Signals didn't work because the process was exiting.
`comcontrol /dev/ttyp0 drainwait 1' worked to terminate the wait.  This
shows that comcontrol is not limited to hardware control.  It has no i386
or driver dependencies and doesn't belong in src/sbin/i386.

Bruce
1995-05-07 06:32:28 +00:00
dg
cae3f6f48d Kludged around a problem with "cat /proc/0/regs" causing a panic by
initializing proc0's frame base, too, using cpu_set_init_frame(). It's
a kludge because that macro is intended to be used only for init, but
does what we want nonetheless.
1995-05-04 08:21:24 +00:00
dg
bdaf4b444d Removed unused variable caused by last commit. 1995-05-02 09:06:04 +00:00
dg
381c266547 Fix for sync() to close a potential panic with accessing a mount struct
that had been freed.

Submitted by:	John Dyson
1995-05-02 08:44:31 +00:00
phk
7cb2df48bc When past cyl 1024 it's ok if CHS is (0xff,0xff,0xff).
It's actually recommended it seems...
1995-05-01 00:45:33 +00:00
bde
04e7b380b7 Change dsioctl() interface to allow DIOCSYNCSLICEINFO to update the caller's
slice pointer and to print the device name in error messages.

Finishing implementing DIOCSYNCSLICEINFO (except for locking).
1995-04-30 15:16:02 +00:00
dg
0050e4a000 Added UIO_NOCOPY case to ureadc() to quiet gcc. 1995-04-30 05:11:46 +00:00
dg
462e0d4d02 Check for curproc != NULL before dereferencing it. 1995-04-30 05:09:13 +00:00
ache
e9b0cedd67 set[ug]id(): call suser() only when neccesarry
Submitted by: bde
1995-04-29 11:46:15 +00:00
jkh
7c335c5e6e Bruce is right - ENOTTY is more appropriate than EINVAL in this case. 1995-04-29 11:36:47 +00:00
jkh
5cc2dacd0f fixes the ioctl routine to not chew up massive amounts of kernel time
if an invalid ioctl is done on /dev/klog.  logioctl() needs to return
an errno instead of -1 on a failed ioctl.
Submitted by:	Mike Pritchard <mpp@mpp.com>
1995-04-29 05:09:19 +00:00
ache
9e8517e291 Implement POSIX SAVED_IDS for setuid/setgid 1995-04-28 18:17:29 +00:00
ache
a94803da3b setre*(): simplify return scheme, pointed by Bruce 1995-04-28 17:00:27 +00:00
ache
775ad02c2d Implement setreuid/setregid according to SunOS manpage 1995-04-27 19:23:24 +00:00
bde
561ff63fef Add ioctls DIOCGSLICEINFO and DIOCSYNCSLICEINFO. The latter isn't
finished or tested.
1995-04-24 17:07:08 +00:00
bde
04e93468c1 Undo the move of `#include "sc.h"' etc. to cons.h. It broke anything
that includes <machine/cons.h>.
1995-04-24 16:43:01 +00:00
bde
1c2d6a2544 Make bad144 debugging code conditional on ds_debug. 1995-04-24 06:04:36 +00:00
bde
6ae9ef4d08 Declare the console switch functions completely.
Move declarations of console functions to cons.h (they should be
config(8)ed).
1995-04-23 12:55:55 +00:00
ache
45c940b5a0 Make setreuid/setregid active syscalls 1995-04-23 12:22:06 +00:00
bde
a8edf3d909 Correct the type of the `acflag' arg to suser(). 1995-04-23 08:31:02 +00:00
phk
e948d5ffd9 We will use /sbin/init on cdrom too. 1995-04-23 04:13:51 +00:00
phk
09760f72c1 Remove the slice for the first 63 sectors for the OnTrack case, it's useless
and nobody care about it anyway.
1995-04-20 06:01:51 +00:00
wpaul
f8bb0b05f3 Undo the stupidity I inflicted on these files and replace it with
some (hopefully) less offensive stupidity:

If we detect that a user has loaded a module that fails to initialize
itself correctly, panic. There really isn't a safe way to recover from
something like this; we can't know that the module is bad until after
the entry point is called, by which time it's too late to do anything
about it.
1995-04-20 05:08:53 +00:00
phk
0fe46c6b99 Added support for disks which "OnTrack Disk Manager" has munged.
I suggest you do all partitioning using the OnTrack SW, to avoid
confusing it.
1995-04-20 01:21:51 +00:00
wpaul
20817a2ce3 Couple of small cosmetic changes:
- Add $Id$ string.
- Fix comment ("we might *not* be able to unload the
module afterwards without panicking...")
- Get rid of variable 'j' that I used in name checking
for(;;) loop and use 'i' instead (I thought there'd be
a problem with this, but there isn't).
1995-04-18 14:10:21 +00:00
wpaul
09db792626 Fix module handling to stop oddball modules (if_ppp_mod, if_sl_mod,
if_tun_mod, etc...) from crashing the system. These modules are useful,
but because they don't yet have proper load()/unload() functions,
they can lead to panics: if, for example, you load the if_ppp module,
any user can panic the system by running modstat.

You can also hang the system outright if you try to unload the PPP
module too.

Changes are as follows:

- Save the name passed to us during the RESERVE stage for name matching
(we can't load if_ppp_mod twice: we've have two ppp0's and two ppp1's,
which is beyond strange). This makes the lkmexists() cheks somewhat
redundant, but there's no way around it that I can see.

- If we call the module entry point and find that we have no lkm_any
structure in our 'private' section, create a fake one. This keeps
modstat happy. We mark such modules as LM_UNKNOWN.

- Don't allow LM_UNLOAD modules to be unloaded: it just ain't
possible. (Unless someone wants to write a pppunattach() function. :( )

- In lkmunreserve(), mark private.lkm_any as NULL so we don't get
confused later. I think this is bogus, but I can't prove it.

XXX: the name matching used to keep the user from loading two
instances of the same module can easily be defeated simply by
changing the module name or, in the case of the oddball modules,
simply by renaming the module files. I haven't found a nice simple
way to tell one module from another.
1995-04-18 02:29:26 +00:00
dg
9f6f5de6df Removed unused & empty bufstats() function. 1995-04-16 12:02:42 +00:00
dg
3dc853919e Killed gratuitous b_vp=NULL in bufinit. The entire buffer is already
bzero()'d.
1995-04-16 11:45:30 +00:00
dg
7010752498 Changed #ifdef around printlockedvnodes() from DEBUG to DDB. 1995-04-16 11:33:33 +00:00
dg
2c660e9070 Make vegetarian and animal rights people happy and use 0xdeadc0de instead
of 0xdeadbeef as the fill pattern. Decreased MAX_COPY to 64 (256 was a bit
overzealous in most cases).
1995-04-16 11:25:15 +00:00
dg
1c003ae427 1) Check for curproc != NULL in bread/bwrite. John convinced me that this
is necessary in order for panic+sync to work. Will also gloss over a panic
that Jordan was having with the install floppies that remains unexplainable.
2) Handle "bogus_page" a little better.
3) Set page protection to VM_PROT_NONE if the entire page has become !valid.

Submitted by:	John Dyson (2&3), me (1).
1995-04-16 05:11:14 +00:00
bde
3431d053fa Speed up ttnread() in the !(ICANON | ISIG) case by copying to user space
through a temporary buffer instead of one character at a time.  The old
method takes about 6 usec/char on a 486DX2/66.  This is larger than than
the combined interrupt and PIO overhead for a 16550!

This change was first implemented in 1.1.5.  It was rewritten for 2.1.
The clist access functions allow a simpler implementation at some cost
in correctness and speed.  There needs to be an ungetc() function to
recover from EFAULT, and it wastes time to copy through a temporary
buffer.

Don't snoop on single characters that weren't read due to EFAULT.
Rewrite a snoop comment in my approximation to English.

Undo bogus exportation of ttnread().
1995-04-15 21:04:58 +00:00
phk
734b5bbff6 Changes needed for kzip to work. 1995-04-15 06:54:13 +00:00
dg
9dad5219aa Fixed serious off by one bug I introduced that will likely cause the
machine to panic whenever the name cache fills up.

Submitted by:	John Dyson
1995-04-15 00:49:35 +00:00
dg
20e8a2d3d9 Backed out previous change - it reduces performance. (oops). 1995-04-13 18:24:33 +00:00
wollman
234ee48c9e Actually copy the class field over from the kernel to the user structure. 1995-04-13 15:33:14 +00:00
dg
3cf86b2d0e Slight optimization to select(). 1995-04-13 15:27:51 +00:00
ache
a569d0b92c Extract "set" family functions to separate module, needed for
locking in sio f.e.
1995-04-11 17:54:25 +00:00