Commit Graph

763 Commits

Author SHA1 Message Date
phk
bd3c94b695 Add an option NFS_NOSERVER which saves 100K in the install kernel (or
any other kernel that uses it).  Use with option NFS.
1996-01-13 23:27:58 +00:00
peter
a444db506a (gulp!) reran makesyscalls..
sysv_ipc.c: add stub functions that either simply return (for the hooks
in kern_fork/kern_exit) or log() a messgae and call enosys() (for the
syscalls).  sysv_ipc.c will become "standard" in conf/files and has
#ifs for all the permutations.
1996-01-08 04:30:48 +00:00
peter
efbf950665 Remove the #ifdef SYSVSHM etc. Always call the functions, some stubs
are about to go in.  This is to fix the problem with the ibcs2 and linux
lkm's not being able to call the sysv ipc functions unless the build is
modified.
1996-01-08 04:13:25 +00:00
phk
5be10e418b It's bad if the blockno is negative. 1996-01-07 22:39:06 +00:00
dg
0b9ef74a6c Print out the queue index if it's found to be inconsistent. 1996-01-06 23:58:03 +00:00
dg
d59c50fa05 Rework vm_hold_{load,free}_pages to calculate an index once and use that.
At the same time, be sure to page-truncate bp->b_data so that the result
of the calculation isn't negative.
1996-01-06 23:23:02 +00:00
wollman
bc29a3cf85 Eliminate the dramatic TCP performance decrease observed for writes in
the range [210:260] by sweeping the problem under the rug.  This change
has the following effects:

1) A new MIB variable in the kern branch is defined to allow modification
of the socket buffer layer's ``wastage factor'' (which determines how
much unused-but-allocated space in mbufs and mbuf clusters is allowed
in a socket buffer).

2) The default value of the wastage factor is changed from 2 to 8.
The original value was chosen when MINCLSIZE was 7*MLEN (!), and is not
appropriate for an environment where MINCLSIZE is much less.

The real solution to this problem is to scrap both mbufs and sockbufs
and completely redesign the buffering mechanism used at both levels.
1996-01-05 21:41:54 +00:00
wollman
06468bb31d Convert BOUNCE_BUFFERS and BOUNCEPAGES to new option scheme. 1996-01-05 20:12:53 +00:00
wollman
b48241ab6f convert FDESC, KERNFS, NULLFS, PORTAL, UMAPFS, and UNION to the new
style of options.
1996-01-05 17:46:14 +00:00
wollman
531ea89e17 Somehow managed to miss these four files when converting the SYSV IPC
options over to the new style.
1996-01-05 16:38:03 +00:00
wollman
a90779c958 Convert DDB to new-style option. 1996-01-04 21:13:23 +00:00
wollman
b4dba5dfcc Convert SYSV IPC to new-style options. (I hope I got everything...)
The LKMs will need an extra file, to come later.
1996-01-04 20:29:06 +00:00
dg
3ef342d675 Fixed minor struct cred leak. Discovered while looking for the opposite
condition - too many frees, which has yet to be found.

Reviewed by:	dyson
1996-01-04 06:09:00 +00:00
wollman
3a5a70f9ce Converted two options over to the new scheme: USER_LDT and KTRACE. 1996-01-03 21:42:35 +00:00
dg
d9a2d314ca Moved the #ifdef DIAGNOSTIC in vrele() so that the check for negative
v_usecount is always performed and only the call to vprint is conditional.
1996-01-02 18:13:20 +00:00
peter
9f63188cfc Fix the reversed source and dest args to bcopy() in the kernel space
sysctl handler (ouch!)

Add a "const" qualifier to the source of the copyin() and copyout()
functions - the other const warning in kern_sysctl.c was silenced when
copyout was declared as having a const source.. (which it is)
1996-01-01 17:05:07 +00:00
peter
8aa9f0db6c fill in kinfo_eproc.e_login - otherwise a sysctl to read the eprocs wont
get the login names, and "ps -ax -O login" will return an empty column
under the login name.
1996-01-01 17:01:03 +00:00
peter
f53fdc5dd5 Only #include <sys/shm.h> if SYSVSHM (for shmexit() prototype)
Add missing #include <sys/sem.h> if SYSVSEM  (for semexit() prototype)
1996-01-01 12:23:39 +00:00
peter
ac29480755 Make pipe() return a set of bidirectional pipe fd's rather than one-way only
just like on SVR4.

This has no effect on any current programs in our source, but makes
the use of SVR4 code a little easier.  There is no code or implementation
cost in the kernel.. This two-line change merely sets the modes on the ends
of the pipes to be bidirectional.  There are no other changes.
1996-01-01 10:28:21 +00:00
peter
639da796bd recording cvs-1.6 file death 1995-12-30 19:02:48 +00:00
bde
5af66827d5 Implemented non-statistical kernel profiling. This is based on
looking at a high resolution clock for each of the following events:
function call, function return, interrupt entry, interrupt exit,
and interesting branches.  The differences between the times of
these events are added at appropriate places in a ordinary histogram
(as if very fast statistical profiling sampled the pc at those
places) so that ordinary gprof can be used to analyze the times.

gmon.h:
Histogram counters need to be 4 bytes for microsecond resolutions.
They will need to be larger for the 586 clock.
The comments were vax-centric and wrong even on vaxes.  Does anyone
disagree?

gprof4.c:
The standard gprof should support counters of all integral sizes
and the size of the counter should be in the gmon header.  This
hack will do until then.  (Use gprof4 -u to examine the results
of non-statistical profiling.)

config/*:
Non-statistical profiling is configured with `config -pp'.
`config -p' still gives ordinary profiling.

kgmon/*:
Non-statistical profiling is enabled with `kgmon -B'.  `kgmon -b'
still enables ordinary profiling (and distables non-statistical
profiling) if non-statistical profiling is configured.
1995-12-29 15:30:05 +00:00
markm
d8fa2f292f 1) ifdef out some unused functions (for now)
2) improve 586 support
3) add 686 support
4) clean up comments etc
Submitted by:	bde
1995-12-29 08:04:32 +00:00
markm
2fafe0c0d4 1) Add #include <machine/cpu.h> to catch some 586 #defines
2) swap the 2 arguments to outb (kato)
Pointed out by: Kato Takenori <kato@eclogite.eps.nagoya-u.ac.jp>
1995-12-28 17:09:14 +00:00
jkh
37aa114957 Gack - if you're going to call semexit() from elsewhere, it shouldn't
be static.. :-)
1995-12-28 01:31:38 +00:00
joerg
8e3609e65a Call semexit() from exit(), in order to process `undo vectors'.
This function has actually never been called.
1995-12-27 15:25:30 +00:00
markm
2da2fd1d17 random_machdep.c: New version, also includes revectored interrupts, rather
than hooking permanently.
vector.s:       : Remove the interrupt hook. This is done dynamically, now.
1995-12-27 11:22:05 +00:00
joerg
8d7b1a163c I report a problem about shmget(). (I'm using FreeBSD-2.1.0R)
int shmget(key_t key, int size, int shmflg);

If the 'key' has already existed in the system and set 'shmflg'
as '(IPC_CREAT|IPC_EXC)', then shmget() must return the error 'EEXIST'.

Submitted by:	m_tanaka@pa.yokogawa.co.jp (Mihoko Tanaka)
1995-12-26 16:03:32 +00:00
bde
2d16c99284 Renamed isa/random.c to isa/random_machdep.c to avoid a conflict with
libkern/random.c.
1995-12-26 12:50:24 +00:00
bde
695aa0e3c5 Unstaticized addupc_task(). It is supposed to be called from trap().
See the comments for addupc_intr() and the NetBSD implementation.
We use dummy versions of fuswintr() and susiwintr(), so addupc_intr()
always pushes the work to trap() (this is inefficient), and trap()
calls the special i386 function addupc() instead of addupc_task().
addupc() is more efficient than addupc_intr(), so some of the lost
efficiency is recovered.  However, addupc() may be broken on plain
i386's since it doesn't check for write permission like copyout().
1995-12-26 01:21:39 +00:00
bde
7c7e335398 Finished staticizing of timevalfix(). 1995-12-26 01:07:42 +00:00
bde
59ae731ea1 Fixed bugs and finished staticization for things inside `#ifdef DEBUG'.
Moved most of these things inside `#ifdef notyet_block_reallocation_enabled'
where they may never be used again.
1995-12-22 16:06:46 +00:00
bde
1f56493eb0 Fixed permissions of /dev/tty. 1995-12-22 15:57:31 +00:00
phk
b64fa23fee kern_conf.c: remove a now unused variable.
vfs_cache.c: Fix a very rare probelm in the vnode-cache.
Submitted by:	Terry Lambert <terry@lambert.org>
1995-12-22 15:56:35 +00:00
bde
0a84609e90 Fixed pty names. The control and slave names were back to front.
Fixed pty permissions.
1995-12-22 15:53:53 +00:00
phk
74eca218ef Remove crufty "pg" function. 1995-12-22 13:09:39 +00:00
julian
3f1241e768 i386/i386/conf.c is no longer needed.. remove it from files.i386
redistribute a few last routines to beter places and shoot the file

I haven't act actually 'deleted' the file yet togive people time
to
have done a config.. I.e. they are likely to have done one in a week or so
so I'll remove it then..
 it's now empty.
makes the question of a USL copyright rather moot.
1995-12-21 20:09:46 +00:00
dg
b7631ecdcc Corrected a typo in a comment. 1995-12-19 14:47:41 +00:00
dg
e2558c0879 Implemented a (sorely needed for years) double fault handler to catch stack
overflows.
It sure would be nice if there was an unmapped page between the PCB and
the stack (and that the size of the stack was configurable!). With the
way things are now, the PCB will get clobbered before the double fault
handler gets control, making somewhat of a mess of things. Despite this,
it is still fairly easy to poke around in the overflowed stack to figure
out the cause.
1995-12-19 14:30:50 +00:00
phk
826d00f42d Staticize.
Unstaticize a function in scsi/scsi_base that was used, with an undocumented
option.
My last count on the LINT kernel shows:
Total symbols:  3647
unref symbols:   463
undef symbols:     4
1 ref symbols:  1751
2 ref symbols:   485
Approaching the pain threshold now.
1995-12-17 21:23:44 +00:00
phk
ff950705d4 Add an obscure feature, needed for debugging. 1995-12-17 21:11:22 +00:00
bde
c39524ebed Updated to match 1TB filesize changes. Some pindexes were still offsets
and weren't converted.  ptrace() was broken.
1995-12-17 06:59:36 +00:00
bde
d484c656e8 Oops, the last commit missed one change from 200 to OBUFSIZ + 100. 1995-12-16 21:45:02 +00:00
bde
d8bc1b4669 Removed dead debugging code. 1995-12-16 21:43:47 +00:00
bde
1fe040229a Uniformized pr_ctlinput protosw functions. The third arg is now `void
*' instead of caddr_t and it isn't optional (it never was).  Most of the
netipx (and netns) pr_ctlinput functions abuse the second arg instead of
using the third arg but fixing this is beyond the scope of this round
of changes.
1995-12-16 02:14:44 +00:00
bde
184628ff6e Removed unused function lkmenodev(). 1995-12-16 00:01:40 +00:00
peter
0c52e3131d Update sysv_*.c to get their argument definitions from sysproto.h 1995-12-15 05:00:31 +00:00
peter
c381ba6f3f Regenerated from syscalls.master... 1995-12-15 04:46:32 +00:00
peter
08dbf8bf0e Add the direct sysv shm/sem/msg system calls, in the same way as NetBSD.
This costs very little, we gain prototypes for the calls from the linux
emulator, and this is one less thing in the way of NetBSD binary support.
1995-12-15 04:36:01 +00:00
peter
224077960e Oops. I forgot the change to this file for supporting static configuration
of the linux emulator.
1995-12-15 02:57:40 +00:00
bde
91166d8cf2 Changed the maximum output queue count from (TTMAXHIWAT + 200) to
(TTMAXHIWAT + OBUFSIZ + 100) in case someone changes OBUFSIZ.  200
was to allow 100 above high water for ordinary writes and another
100 for kernel printfs.

Increased the reserved output queue count from 512 to the maximum
output queue count.  This prevents exhaustion of clists and increases
the output throughput for 8 cy lines by almost a factor of 2 (on
a system where there aren't many other open ttys so clists become
exhausted after about 4 active lines (or earlier if TTMAXHIWAT is
increased :-]).

ttwrite() behaves very badly when clists are exhausted:
(1) it sleeps on lbolt instead of on TSA_OLOWAT(tp).
    This could be fixed adequately by sleeping on TSA_OLOWAT(tp).
    The nonzero reserved count guaratees that space will become
    available independent of other ttys, and a reserved count
    of 512 is barely enough for efficiency.
(2) it drops output if space runs out in the middle of special
    output processing.  This is too hard to fix without hardening
    the reserved count.  The watermark processing guarantees that
    space doesn't run out only if the advertised space is guaranteed.

Increasing the reserved output queue count defeats the point of
dynamic allocation of clists.  Previously, about 2K of memory per
tty was reserved (the raw queue was already reserved).  Now, about
3.5K is reserved.  Reserving everything would take a whole 0.5K
more.
1995-12-15 02:18:06 +00:00