Commit Graph

2878 Commits

Author SHA1 Message Date
jb
a451f52058 [ The author's description... ]
o Runnable threads are now maintained in priority queues.  The
    implementation requires two things:

      1.) The priority queues must be protected during insertion
          and removal of threads.  Since the kernel scheduler
          must modify the priority queues, a spinlock for
          protection cannot be used.   The functions
          _thread_kern_sched_defer() and _thread_kern_sched_undefer()
          were added to {un}defer kernel scheduler activation.

      2.) A thread (active) priority change can be performed only
          when the thread is removed from the priority queue.  The
          implementation uses a threads active priority when
          inserting it into the queue.

    A by-product is that thread switches are much faster.  A
    separate queue is used for waiting and/or blocked threads,
    and it is searched at most 2 times in the kernel scheduler
    when there are active threads.  It should be possible to
    reduce this to once by combining polling of threads waiting
    on I/O with the loop that looks for timed out threads and
    the minimum timeout value.

  o Functions to defer kernel scheduler activation were added.  These
    are _thread_kern_sched_defer() and _thread_kern_sched_undefer()
    and may be called recursively.  These routines do not block the
    scheduling signal, but latch its occurrence.  The signal handler
    will not call the kernel scheduler when the running thread has
    deferred scheduling, but it will be called when running thread
    undefers scheduling.

  o Added support for _POSIX_THREAD_PRIORITY_SCHEDULING.  All the
    POSIX routines required by this should now be implemented.
    One note, SCHED_OTHER, SCHED_FIFO, and SCHED_RR are required
    to be defined by including pthread.h.  These defines are currently
    in sched.h.  I modified pthread.h to include sched.h but don't
    know if this is the proper thing to do.

  o Added support for priority protection and inheritence mutexes.
    This allows definition of _POSIX_THREAD_PRIO_PROTECT and
    _POSIX_THREAD_PRIO_INHERIT.

  o Added additional error checks required by POSIX for mutexes and
    condition variables.

  o Provided a wrapper for sigpending which is marked as a hidden
    syscall.

  o Added a non-portable function as a debugging aid to allow an
    application to monitor thread context switches.  An application
    can install a routine that gets called everytime a thread
    (explicitly created by the application) gets context switched.
    The routine gets passed the pthread IDs of the threads that are
    being switched in and out.

Submitted by: Dan Eischen <eischen@vigrid.com>

Changes by me:

  o Added a PS_SPINBLOCK state to deal with the priority inversion
    problem most often (I think) seen by threads calling malloc/free/realloc.

  o Dispatch signals to the running thread directly rather than at a
    context switch to avoid the situation where the switch never occurs.
1999-03-23 05:07:56 +00:00
jkoshy
7979064d1d Typo fix.
PR:		docs/10733
Submitted by:	Steve Coltrin <spcoltri@io.com>
1999-03-23 05:01:11 +00:00
bde
058bbe3c62 Simplified using new SYMLINKS macro, mainly to test this macro. The
ifdefs are too ugly for this to be much of a simplification.  The
existence tests are even uglier now.  Note that the previous commit
was not submitted by me.  It missed the point and just added a second
layer of unused removals.

Fixed hard-coded "libcrypt"s.  The LCRYPTBASE macro mainly makes
things hard to read, but use it while we have it.
1999-03-23 03:41:09 +00:00
alex
787e89e027 Typo fix (set --> get).
Obtained from:	OpenBSD (David Leonard)
1999-03-22 23:13:37 +00:00
phk
67e16255da Address our users in a civilized manner. (They may know better, but probably
just forgot it, it is certainly no reason to don't insult them.)
1999-03-22 10:38:07 +00:00
imp
f964808ff3 Don't be so selective about which errors cause us to continue and
which ones cause us to fail.  Now all open errors on the databse file
will cause the next file in the list to be tried.

Submitted by: Arne Henrik Juul <arnej@math.ntnu.no>
PR: 4585
1999-03-21 03:45:58 +00:00
jdp
0d2a12bcaf Add "-fkeep-inline-functions" to CFLAGS so that higher optimization
levels (-O3 and above) won't remove essential code.  Many thanks
to Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru> for pointing out
that it was the optimizer's removal of this code that caused make
world with -O3 to break.  With this change, make buildworld now
completes.
1999-03-15 21:56:54 +00:00
alex
7421117a22 EACESS -> EACCES 1999-03-15 00:14:57 +00:00
markm
418d7362f7 Build libwrap - the core to tcp_wrappers. 1999-03-14 17:56:11 +00:00
jdp
d790b6b749 Reverse the order of processing object files within an executable or
shared library when invoking global constructors and destructors.
For constructors, the object files used to be processed from first
to last; now they're done from last to first.  (Destructors are done
in the opposite order, as required by the C++ standard.)  This makes
us consistent with standard gcc and egcs compilers.  It also
eliminates ordering differences between dynamic and static
executables.

Bump the value of __FreeBSD_version to 400002 to reflect this
change.
1999-03-13 01:35:44 +00:00
jdp
a83e407889 Move the code for the ".init" and ".fini" sections outside of a
C function so the compiler won't try to emit line numbers for it
with "-g", breaking the build.  This has the nice side-effect of
making crtbegin.o and crtbeginS.o a little bit smaller.

Remove "-Wno-unused" from the Makefile.  Replace it with "__unused"
on particular function and variable declarations.
1999-03-12 17:33:28 +00:00
gallatin
1972c6ba27 make libkvm capable of dealing with a crashdump on alphas
Reviewed by: Doug Rabson <dfr@nlsystems.com>
1999-03-12 14:47:33 +00:00
dfr
9873238697 Add support for long long modifier (e.g. %llx, %lld).
Reviewed by: bde
1999-03-11 22:44:02 +00:00
brian
e4c4c7a0ff Get the pid right if a stale lock file exists.
PR:	10531
Submitted by: Lawrence D. Lopez <lopez@cisco.com>
1999-03-11 09:09:20 +00:00
roberto
8d2710f400 PID_MAX is now 99999.
PR:		docs/10530
Submitted by:	Ben Smithurst <ben@scientia.demon.co.uk>
1999-03-10 20:55:23 +00:00
brian
d5ccc1beb2 Remove all diagnostics to stdout/stderr with #ifdef DEBUG
Statify functions in alias_nbt.c
1999-03-09 23:44:00 +00:00
ghelmer
3aa17e6272 Explain ENXIO error status with respect to fifos.
PR:		docs/8559
1999-03-07 18:45:35 +00:00
brian
8b7bf74482 Document PacketAliasPptp() and allow it to be disabled
by passing INADDR_NONE.
1999-03-07 18:13:23 +00:00
brian
958883fc96 Remove unused function stubs. 1999-03-07 15:36:58 +00:00
brian
1b7dfc8070 Mention that PacketAliasProxyRule() doesn't accept host names,
just IP numbers.
1999-03-07 15:02:22 +00:00
brian
5a72bcc3c3 Document PacketAliasProxyRule() and fix a typo. 1999-03-06 21:58:43 +00:00
bde
3af5374f3c Fixed prototype for fetchParseURL(). 1999-03-05 18:45:32 +00:00
bde
504669ca2e Fixed bitrot in synopsis (some const poisoning hadn't reached here). 1999-03-05 18:43:00 +00:00
bde
989e487b34 Don't use u_long in the synopsis, since u_long is not part of the kvm
interface.
1999-03-05 17:32:53 +00:00
bde
8066b16f5f Fixed missing header in synopsis (<devstat.h> unfortunately depends on
<sys/dkstat.h>).
1999-03-05 17:14:05 +00:00
bde
d45622398b Fixed missing header in synopsis (<camlib.h> includes half the universe
but not <stdio.h>).
1999-03-05 17:11:37 +00:00
bde
6a93d15670 Fixed bitrot in synopsis (some const poisoning had not reached here). 1999-03-05 17:08:23 +00:00
bde
86095272bd Fixed bitrot in synopsis (some const poisoning hadn't reached here). 1999-03-05 15:50:07 +00:00
bde
8edc8edaff Don't bogotify the synopsis by attempting to describe err_set_file() there.
Fixed some disorder.
1999-03-05 15:36:23 +00:00
alex
514eb12afc Fixed references to unmount(2) specified as umount.
Submitted by:	Markus Friedl <markus.friedl@informatik.uni-erlangen.de>
		via OpenBSD
1999-03-05 15:16:31 +00:00
bde
35266b0593 Fixed disordering and incoinsistent style in previous commit. 1999-03-05 13:01:22 +00:00
bde
37702ffa62 The pseudocode in the synopsis didn't come close to actually
compiling, since <stdio.h> correctly doesn't declare off_t although
the pseudo-prototypes for the new fseeko() and ftello() functions
use it.  Handle this like the corresponding problem for va_list
versus the vprintf() family.

Fixed some English errors.
1999-03-05 12:56:37 +00:00
bde
16c496dd85 Don't use undocumented markup "{}". Use 32767 instead of LINK_MAX to
give bug for bug compatibility with intro.2.
1999-03-05 10:39:50 +00:00
bde
8c8e1f3972 Backed out most of rev.1.4. I didn't submit it; I only submitted a
request for it something like it.  It was poorly worded and too
far from both POSIX wording and normal (mal)practice by referring to
sysconf(_SC_NGROUPS_MAX) instead of {NGROUPS_MAX} or NGROUPS.  POSIX.1
uses curly braces to mark up "symbolic constants or limits [that may
be] defined in certain headers".  Since we don't document this markup,
don't use it.  Just use NGROUPS_MAX.
1999-03-05 10:29:34 +00:00
phk
6c9764d077 Use sysctlbyname() instead of sysctl(). 1999-03-05 10:01:24 +00:00
bde
f637c88b81 Forgot to add $Id$ and change date in previous commit. 1999-03-05 09:44:59 +00:00
bde
801213cd08 Changed the type of quotactl()'s 4th arg from char *' to void *'
so that non-sloppy applications can call it without using disgusting
casts to avoid warnings.  The 4th arg is sort of varargs -- it must
sometimes represent a filename, sometimes a struct pointer, and is
sometimes unused.  The arg type is still caddr_t in the kernel.

Obtained from:	mostly from NetBSD
1999-03-05 09:28:33 +00:00
imp
04a0bf0d08 These were missing from the previous commit. 1999-03-03 07:08:03 +00:00
imp
4d23a3a1e4 Bring in initial libc support for mips. These files were taken from
the OpenBSD tree and should be considered preliminary.  They are here
to facilitate building of the tree.
1999-03-03 07:06:17 +00:00
ache
4e5c23f7a1 add more MLINKS 1999-03-02 22:53:24 +00:00
ghelmer
7a5b08f806 Correct synopsys: getsubopt is declared in unistd.h, not stdlib.h.
PR:		docs/9376
1999-03-02 02:35:57 +00:00
ghelmer
95c4306434 Mention that getservbyport requires its port parameter to be in
network byte order.

PR:		docs/9376
1999-03-02 02:34:23 +00:00
wollman
e903dee1c1 Don't even attempt to build the assembly-language versions of RIPEMD160
and SHA-1 when OBJFORMAT is not ELF.  Add a warning to the man page
about how SHA-1 uses bswapl, which will trap on 80386es (and the kernel
should, but doesn't currently, emulate).
1999-03-01 02:39:45 +00:00
chuckr
cd8e257052 fix for incorrect specification of alignment (it worked for the elf
build, but broke while doing the aout legacy build).  Now using
.p2align instead of .align.  Fixes broken buildworld.

Submitted by:	John Polstra
Reviewed by:	John Polstra
1999-02-28 18:55:39 +00:00
mjacob
39fab177a1 No, this isn't what I submitted. Seems like the patch I sent
was ignored and an incorrect hand edit was used instead.
1999-02-27 02:45:31 +00:00
brian
087590fb63 Version 3.0: January 1, 1999
- Transparent proxying support added.
    - PPTP redirecting support added based on patches
      contributed by Dru Nelson <dnelson@redwoodsoft.com>.

Submitted by: Charles Mott <cmott@srv.net>
1999-02-27 02:16:01 +00:00
ghelmer
62018e0afe Corrected use of backslash escaping in sample code.
PR:		docs/10284
Submitted by:	Alfred Perlstein <bright@cygnus.rush.net>
1999-02-27 00:54:40 +00:00
wollman
7810a0ea5a Fixes for Alpha.
Submitted by:	mjacob
1999-02-26 20:06:46 +00:00
wollman
563552afce Don't build the assembly for shared linkage, PIC isn't implemented. 1999-02-26 18:43:01 +00:00
wollman
db4b7a727b Add Eric Young's RIPEMD160 implementation as well, in case SHA-1
should prove weak.  Also fix a few problems with the SHA-1 build.
1999-02-26 18:41:47 +00:00