6906 Commits

Author SHA1 Message Date
wollman
4d20b5bdb1 Separate kernel-internal data structures from exposed user interface
to interfaces.  (Amazing nobody had done this!)

More commits to fix up user-land to follow.
1997-01-03 19:50:26 +00:00
dyson
b68b333a77 Undo the collapse breakage (swap space usage problem.) 1997-01-03 17:02:28 +00:00
kato
c7e8ba2236 Oops, delete extra push %edi and push %esi in memsize().
Submitted by:	Michio "Karl" Jinbo <karl@marcer.nagaokaut.ac.jp>
1997-01-03 16:21:08 +00:00
kato
49da9c318a Change IMR of master PIC from 0x7f into 0xff in isa_defaultirq().
This is a 2.2 candidate.
1997-01-03 07:45:41 +00:00
se
41dcd5fc85 Add code to copy the LDT, if required.
This code was sent to me by Bruce Evans, and seems to fix some
possible kernel panic in case of an execution error. It did not
cause any problems on my system, but I did never observe the
problem this patch is supposed to fix, anyway.

This patch is a NOP, unless the kernel is built with "options
USER_LDT", and doesn't affect the GENERIC kernel for this reason.

I want to have it in 2.2: it fixes a bug ...

Submitted by:	bde
1997-01-02 01:43:09 +00:00
se
92f2d80d98 Add Intel VX chip set specific detection and register dump code.
Submitted by:	brianc@netrover.com (Brian Campbell)
1997-01-02 01:23:17 +00:00
phk
e4302d7ae5 Make it possible to test kernel code in a userland harness, even if it
uses MAKE_SET or derivatives and <sys/time.h> at the same time...
1997-01-01 21:07:15 +00:00
dyson
3bb3295727 Guess what? We left alot of the old collapse code that is not needed
anymore with the "full" collapse fix that we added about 1yr ago!!!  The
code has been removed by optioning it out for now, so we can put it back
in ASAP if any problems are found.
1997-01-01 04:45:05 +00:00
dyson
b7fce42185 A very significant improvement in the management of process maps
and objects.  Previously, "fancy" memory management techniques
such as that used by the M3 RTS would have the tendancy of chopping
up processes allocated memory into lots of little objects.  Alan
has come up with some improvements to migtigate the sitution to
the point where even the M3 RTS only has one object for bss and
it's managed memory (when running CVSUP.)  (There are still cases where the
situation isn't improved when the system pages -- but this is much much
better for the vast majority of cases.)  The system will now be able
to much more effectively merge map entries.

Submitted by:	Alan Cox <alc@cs.rice.edu>
1996-12-31 16:23:38 +00:00
wpaul
eb5560009c Fix (properly, I hope) 'panic: sillyrename dir' crash that can happen
if you do:

% cd /nfsdir
% mkdir -p foo/foo
% mv foo/foo .

nfs_sillyrename() self-destructs if you try to sillyrename a directory,
however nfs_rename() can be coerced into doing just that by the above
sequence of commands. To avoid this, nfs_rename() now checks that
v_type of the 'destination' vnode != VDIR before attempting the
sillyrename. The server correctly handles this particular situation
by returning ENOTEMPTY on the rename() attempt.

I asked if this was the correct fix for this on -hackers but nobody
ever answered.

This is a 2.2 candidate.
1996-12-31 07:10:19 +00:00
jkh
0ed11a8722 A couple of changes for proper mpu401 recognition, and an opl3 patch
taken from the voxware-3.5 distribution.  Also some changes to the SB
and MPU IRQs to reflect more common/default settings.

Submitted-By: Brian Campbell <brianc@netrover.com>
1996-12-30 22:26:26 +00:00
joerg
42bee8c8d9 Apply a similar fix as in gsc.c rev 1.23.
Pointed out by:	bde
1996-12-30 21:17:13 +00:00
joerg
4aa5c59642 Apparently, someone changed the gsc driver to allocate one big buffer
at device attach time, instead of allocating and freeing buffers as
necessary. But he or she forgot to remove the line that invalidated
the buffer when the device is closed. Therefore, after using the
device for the first time, the buffer was incorrectly invalidated and
that caused a page fault on the second, and subsequent uses.

Closes PR # kern/2319: Using Genius GS-4500 scanner...

Submitted by:	jmrueda@diatel.upm.es (Javier Martmn Rueda)
1996-12-30 20:42:47 +00:00
jhay
b3234516f1 Update our kernel ntp code to the latest from David Mills. The main change
is the addition of the FLL code, which is used by the latest versions of
xntpd. The kernel PPS code is also updated, although I can't test that yet.
1996-12-30 18:26:28 +00:00
peter
76162281a2 Add NetBSD/OpenBSD compatable timeradd()/timersub() user-space macros.
These are deliberately not visible to the kernel since we have timevaladd()
and timevalsub() functions there.

Obtained from: NetBSD/OpenBSD
1996-12-30 15:36:56 +00:00
peter
2a7e4d562f Add INADDR_LOOPBACK, moved from <rpc/rpc.h> 1996-12-30 15:34:17 +00:00
peter
bd9931aed2 First commit of a series of cleanups for the libc rpc code which has been
suffering a bad case neglect for the last few years.

- Add full prototypes, including to function pointers.
- Make the wire protocols 64-bit type safe, eg: 32 bit quantities are
  int32_t, not long.  The orginal rpc code was implemented when an int
  could be 16 bits.

Obtained from: a diff of FreeBSD vs. OpenBSD/NetBSD rpc code.
1996-12-30 13:59:41 +00:00
dyson
c232302d3f Let the VM system know that on certain arch's that VM_PROT_READ
also implies VM_PROT_EXEC.  We support it that way for now,
since the break system call by default gives VM_PROT_ALL.  Now
we have a better chance of coalesing map entries when mixing
mmap/break type operations.  This was contributing to excessive
numbers of map entries on the modula-3 runtime system.  The
problem is still not "solved", but the situation makes more
sense.

Eventually, when we work on architectures where VM_PROT_READ
is orthogonal to VM_PROT_EXEC, we will have to visit this
issue carefully (esp. regarding security issues.)
1996-12-30 05:31:21 +00:00
dyson
bc06bff430 EEEK!!! useracc and kernacc didn't lock their respective
maps.  Additionally, eliminate the map->hint distortion
associated with useracc.  That may/may-not be the "right"
thing to do -- but time will tell.
Submitted by:	Partially by Alan Cox <alc@cs.rice.edu>
1996-12-30 03:56:11 +00:00
bde
bb1f97cdf1 Fixed keeping track of interrupt nesting level across ASTs. It sometimes
became -1, and this recently became fatal if an address error occurs in
copyin/out/etc.
1996-12-29 22:05:23 +00:00
phk
f1d17a487d Add
SLIST_EMPTY(head)
	SLIST_FIRST(head)
	SLIST_NEXT(elm, field)

Which do the obvious things while hiding implementation details.
1996-12-29 21:14:06 +00:00
phk
e1bb1cc95e Reserve 4 malloc types for generic geometry handling. 1996-12-29 21:09:41 +00:00
dg
274e36e5de Delete bogus inconsistency check that could cause a gratuitous panic. I
had added this years ago when I didn't understand all the subtilties of
the flock code.
1996-12-29 09:22:34 +00:00
kato
7433bf787d Synchronize with sys/i386/isa/npx.c revision 1.35 (disable
i586-optimized copyin and copyout).
1996-12-29 08:14:02 +00:00
kato
20677b87a8 Synchronize with sys/i386/i386/machdep.c revision 1.223 (clean-up of
useracc call).
1996-12-29 08:10:30 +00:00
dyson
04a0ee9a2a This commit is the embodiment of some VFS read clustering improvements.
Firstly, now our read-ahead clustering is on a file descriptor basis and not
on a per-vnode basis.  This will allow multiple processes reading the
same file to take advantage of read-ahead clustering.  Secondly, there
previously was a problem with large reads still using the ramp-up
algorithm.  Of course, that was bogus, and now we read the entire
"chunk" off of the disk in one operation.   The read-ahead clustering
algorithm should use less CPU than the previous also (I hope :-)).

NOTE:  THAT LKMS MUST BE REBUILT!!!
1996-12-29 02:45:28 +00:00
dyson
baa03b956c This commit is the embodiment of some VFS read clustering improvements.
Firstly, now our read-ahead clustering is on a file descriptor basis and not
on a per-vnode basis.  This will allow multiple processes reading the
same file to take advantage of read-ahead clustering.  Secondly, there
previously was a problem with large reads still using the ramp-up
algorithm.  Of course, that was bogus, and now we read the entire
"chunk" off of the disk in one operation.   The read-ahead clustering
algorithm should use less CPU than the previous also (I hope :-)).
1996-12-29 02:44:37 +00:00
dyson
a23fe88830 Superficial cleanup of comment. 1996-12-29 02:33:12 +00:00
dyson
3a939018c3 Superficial clean-up of useracc calls. (The useracc usage of
B_READ/B_WRITE is bogus anyway.)  Might as well make the call prettier
anyway.
1996-12-29 02:29:41 +00:00
dyson
6a2a246ed7 Allow pmap_protect to increase permissions. This mod can eliminate
the need for unnecessary vm_faults.
Submitted by:	Alan Cox <alc@cs.rice.edu>
1996-12-29 02:27:07 +00:00
dyson
fb5d9384f8 Eliminate the redundancy due to the similarity between the routines
vm_map_simplify and vm_map_simplify_entry.  Make vm_map_simplify_entry
handle wired maps so that we can get rid of vm_map_simplify.  Modify
the callers of vm_map_simplify to properly use vm_map_simplify_entry.
Submitted by:	Alan Cox <alc@cs.rice.edu>
1996-12-28 23:07:49 +00:00
dyson
527a08777f The code unnecessarily created an object with no handle up-front, which
has the negative effect of disabling some map optimizations.  This
patch defers the creation of the object until it needs to be at fault time.
Submitted by:	Alan Cox <alc@cs.rice.edu>
1996-12-28 22:40:44 +00:00
bde
8ad899fed7 Disabled i586-optimized copyin and copyout again. The fault handler
is still broken - it doesn't restore the floating point state.

2.2-BETA users should disable it using npx0 flags 0x04 the same as
2.2-ALPHA users should have.
1996-12-28 12:19:25 +00:00
ache
fab9c3d360 Turn off qcam_debug flag by default
Should go in 2.2
Reviewed by: pst
1996-12-28 05:45:18 +00:00
kato
67dfb2c29f Staticize dmapageport and isa_dmarangecheck. 1996-12-27 13:06:31 +00:00
peter
e1f722b398 Put INCLUDE_CONFIG_FILE into opt_config.h rather than the CFLAGS line 1996-12-26 23:38:17 +00:00
bde
78f7aad114 Don't synchronously update the directory entry at the end of every
successful write.  Only do it for the IO_SYNC case (like ufs).  On
one of my systems, this speeds up `iozone 24 512' from 32K/sec
(1/128 as fast as ufs) to 2.8MB/sec (7/10 as fast as ufs).

Obtained from:	partly from NetBSD
1996-12-25 20:15:12 +00:00
kato
6072ac782f Synchronize with sys/i386/isa/sio.c revision 1.155 (use breakpoint()
instead of Debugger()).
1996-12-24 11:47:52 +00:00
kato
67efd9fff6 Synchronize with sys/i386/i386/userconfig.c revision 1.79 (cosmetic
change).
1996-12-24 11:44:33 +00:00
joerg
6d981da88a Slightly re-order the sequence of commands issued, so try to send
the START UNIT command before testing whether the device is ready.
Maybe it should be done even earlier, i'm not 100 % sure.

Again, CD changers will most likely benefit from it.

While i was at it, also made the debugging case a little more verbose
about why the cdopen() yielded an ENXIO.  (Only in effect when
SCSIDEBUG is specified.)

Should eventually also go into 2.2.
1996-12-24 11:35:24 +00:00
joerg
92da8dac3d Do something Peter Dufault long since intended to do: make a current
error code with ASC/ASCQ 4/1 (``Logical unit is in the process of
becoming ready'') non-fatal.  Retry the operation until it will
eventually either yield a real error condition, or finally succeed.

Devices like CD changers or tape drives with a freshly inserted
cartridge should benefit from this.

Should go into 2.2 after some testing in -current.  I'd like to see
this in the release if possible.
1996-12-24 11:32:41 +00:00
bde
3ba43f51b4 Use breakpoint() instead of Debugger() in siointr1(). Debugger() doesn't
work in fast interrupt handlers because it calls db_printf() which uses
%es for string stuff and %es isn't initialized.
1996-12-23 19:57:33 +00:00
bde
be356f2ac1 Don't redefine SCSI_NCR_DFLT_TAGS even in if FAILSAFE is defined. 1996-12-23 19:12:29 +00:00
bde
de2eeae4b6 Added undocumented SCSI_DELAY and SCSI_NCR_* options. SCSI_DELAY gets
tested a lot in GENERIC, but the others weren't in any config file and
some of them were broken.
1996-12-23 19:04:20 +00:00
bde
60c5bef917 Sorted options. 1996-12-23 18:42:02 +00:00
bde
b3c6afb2ba Fixed spelling of SCSI_NCR_MAX*. 1996-12-23 18:40:40 +00:00
bde
970ca1d1d3 Fixed quoting of MAXDSIZ and DFLTDSIZ. The quoting rules changed when
they were put in an options header.

Should be in 2.2.
1996-12-23 18:23:14 +00:00
joerg
3f002b8b0a Cosmetic (wrt. the screen display) change: when re-enabling a device,
make sure it won't go into the PCI section.  Disabling and re-enabling
ed0 made it to the wrong section.

Submitted by:	msmith
1996-12-23 12:33:08 +00:00
jkh
7def3b1706 *Ahem* - opt_rlimit.h does not exist in the LKM case. This was another
2.2 build-breaker.. :(
1996-12-23 06:37:23 +00:00
joerg
365b171ddf Fix a bug in the wt driver that could cause memory corruption.
Closes PR # kern/1065.

While i was at it, also reject IO requests that are not an integer
multiple of the device blocksize.

Submitted by:	vak@crox.net.kiae.su (Serge V.Vakulenko)
Confirmed by:	Georg-W. Koltermann (gwk@cray.com)
1996-12-23 01:53:13 +00:00