julian [Wed, 21 May 2003 18:53:25 +0000 (18:53 +0000)]
When we are spilling threads out of the run queue during panic, make sure we
keep the thread state variable consistent with its real state.
i.e. Don't say it's on the run queue when it isn't.
ru [Wed, 21 May 2003 15:52:43 +0000 (15:52 +0000)]
mdoc(7) fixes.
This manpage should really have only one short description (.Nd);
if anyone could come up with a wording suitable for both conversion
and decoding/encoding functions, that would unbreak the whatis(1)
output for this manpage.
ru [Wed, 21 May 2003 13:26:37 +0000 (13:26 +0000)]
Fixed catman(1) so that if the source files are compressed,
the preformatted files are compressed with the same program
as the source, and if the source files are uncompressed, the
preformatted files are also uncompressed.
mtm [Wed, 21 May 2003 08:21:24 +0000 (08:21 +0000)]
o Make the defenition of _set_curthread() match its declaration
in thr_private.h
o Lock down the ldt_entries array and ldt_free, which points to
the next free slot. As noted in the comments, it's necessary
to special case the initial_thread because %gs is not setup
for it yet. This is ok because that early in the program there
won't be any reentrancy issues anyways.
mtm [Wed, 21 May 2003 03:41:07 +0000 (03:41 +0000)]
Insert a debugging aid:
When in either the mutex or cond queue we notice that the thread
is already on one of the queues, don't just simply abort(). Print
out the thread's identifiers and what queue it was on.
mtm [Wed, 21 May 2003 03:34:54 +0000 (03:34 +0000)]
Re-enable the garbage collector thread in anticipation of further
locking work. I can't see anything obviously wrong with it (other than
the need to update the locking).
mtm [Wed, 21 May 2003 03:29:18 +0000 (03:29 +0000)]
When a thread exits it does not return from the kernel unless it
is the *only* remaining thread in the application, in which case we
should not core dump, and instead exit gracefully.
jhb [Tue, 20 May 2003 20:50:33 +0000 (20:50 +0000)]
The per-CPU spinlocks list is only maintained when WITNESS is enabled.
Thus, treat all page faults while in a critical section as fatal rather
than just those that occur with a non-empty spinlocks list. All such page
faults are fatal anyways. Calling trap_fatal() earlier increases the
chances of getting more useful panic messages and a possible DDB prompt.
marcel [Tue, 20 May 2003 06:57:20 +0000 (06:57 +0000)]
o Fix a definite bogon: the dirty bity fault, instruction access
failt and data access fault install the PTE in question into
the VHPT table. However, a post-increment was missing and we
wrote the raw PTE data into the pagesize/access key field.
This leaves a corrupt VHPT entry.
o While here, remove the explicit cache purge. Insertion into
the translation implicitly purges any overlapping entries.
o Make sure there's a cycle break between the itc and the rfi.
o Whitespace fixes.
marcel [Tue, 20 May 2003 02:52:41 +0000 (02:52 +0000)]
Prevent corruption of the VHPT collision chain by protecting it with
a mutex. The only volatile chain operations are insertion and deletion
but since updating an existing PTE also updates the VHPT entry itself,
and we have the VHPT mutex in both other cases, we also lock when we
update an existing PTE even though no chain operation is involved.
Note that we perform the insertion and deletion careful enough that
we don't need to lock traversals. If we need to lock traversals, we
also need to lock from the exception handler, which we can't without
creating a trapframe.
We're now able to withstand a -j8 buildworld. More work is needed to
withstand Murphy fields. In other words: we still have a bogon...
scottl [Tue, 20 May 2003 01:46:09 +0000 (01:46 +0000)]
Move the isp driver back to the alpha BOOTMFS kernel, and trim the size
of inodes for the alpha driver floppy. With this patch, alpha actually
built a full release!
deischen [Mon, 19 May 2003 23:04:50 +0000 (23:04 +0000)]
Eek, staticize a couple of functions that shouldn't
be external (initialize()!).
Remove cancellation points from _pthread_cond_wait and
_pthread_cond_timedwait (single underscore versions are
libc private functions). Point the weak reference(!) for
these functions to the versions with cancellation points.
Approved by: re@(blanket till 5/19)
Pointed out by: kan (cancellation point bug)
peter [Mon, 19 May 2003 22:35:00 +0000 (22:35 +0000)]
Deal with the possibility of negative available space from the file server
to avoid Bad Things(TM) happening (eg: df crashing with a floating point
exception).
Submitted by: Harold Gutch <logix@foobar.franken.de>
Approved by: re (scottl)
kan [Mon, 19 May 2003 20:29:07 +0000 (20:29 +0000)]
sys/sys/limits.h:
- Fix visibilty test for LONG_BIT and WORD_BIT. `#if defined(__FOO_VISIBLE)'
is alays wrong because __FOO_VISIBLE is always defined (to 0 for
invisibility).
ru [Mon, 19 May 2003 14:37:41 +0000 (14:37 +0000)]
Apply a vendor fix for one problem with tagged lists. From ChangeLog:
2003-05-18 Werner LEMBERG <wl@gnu.org>
* tmac/doc.tmac (doc-tag-list): Force horizontal mode after tag
to make items work which consist only of a tag.
2003-05-17 Werner LEMBERG <wl@gnu.org>
* tmac/doc.tmac (doc-tag-list): Don't use \Z to assure that spaces
aren't stretched in a tag (this can fail with unformatted boxes).
Instead, insert a break and go back one line.
marcel [Mon, 19 May 2003 08:02:36 +0000 (08:02 +0000)]
Turn pmap_install_pte() into a critical section. We better not get
interrupted while writing into the VHPT table. While here, make sure
memory accesses a properly ordered. Tag invalidation must happen
first so that the hardware VHPT walker will not be able to match
this entry while we're updating it and we have to make sure the new
new tag gets written only after the PTE is completely updated.
marcel [Mon, 19 May 2003 06:05:30 +0000 (06:05 +0000)]
Unconditionally set pcb_current_pmap. WIP versions of the code
previously committed cleared pcb_current_pmap prior to changing
the region registers, but that was removed before committing.
Since we don't normally (at all?) pass a NULL pointer, the bug
was mostly harmless. Fix it while I'm here...
I'm here because we need to have data serialization after writing
to the region registers. Not doing so was likely the cause of the
hangs we were experiencing. General exceptions in cpu_switch may
also be caused by the lack of serialization.
marcel [Mon, 19 May 2003 04:16:30 +0000 (04:16 +0000)]
pmap_install() needs to be atomic WRT to context switching. Protect
switching user regions (region 0-4) with schedlock. Avoid unnecessary
recursion on schedlock by moving the core functionality to another
function (pmap_switch()) where we assert schedlock is held. Turn
pmap_install() into a wrapper that grabs schedlock. This minimizes
the number of callsites that need to be changed.
Since we already have schedlock in cpu_switch() and cpu_throw(),
have them call pmap_switch() directly. These were also the only two
calls to pmap_install() outside pmap.c, so make pmap_install() static
and remove its prototype from pmap.h
das [Mon, 19 May 2003 00:51:07 +0000 (00:51 +0000)]
If we seem to be out of VM, don't allow the pagedaemon to kill
processes in the first pass. Among other things, this will give
us a chance to launder vnode-backed pages before concluding that
we need more swap. This is particularly useful for systems that
have no swap.
While here, update a comment and remove some long-unused code.
Reported by: Lucky Green <shamrock@cypherpunks.to>
Suggested by: dillon
Approved by: re (rwatson)
jmallett [Sun, 18 May 2003 19:34:03 +0000 (19:34 +0000)]
For EXT*DIR, use -H in addition to -R, so that a symlink may be
used in the EXTSRCDIR case, for example, if one finds it useful
to symlink /usr/src to an actual source tree, and use /usr/src
as the EXTSRCDIR.
This has no effects on release builds not using external directories.
imp [Sun, 18 May 2003 04:21:38 +0000 (04:21 +0000)]
Tell how to completely disable ACPI. Add warnings about how bad
kharma it will be to disable some or all of acpi on ia64 or amd64 (are
there other non-i386 platforms that FreeBSD supports with ACPI?).
Submitted by: Ryan Losh
Approved by: re@ (rwatson)
mtm [Sun, 18 May 2003 03:39:39 +0000 (03:39 +0000)]
Apparently ldconfig(8) prefers the format as the first argument
with the rest of the options following it. This caused problems for
people using ldconfig_insecure=yes because the '-i' switch was being
positioned before the format argument.