markm [Thu, 14 Mar 2002 16:41:36 +0000 (16:41 +0000)]
Remove the use of random(3), and encapsulate the salt-generation in
its own function. The use of arc4random(3) is hopeless overkill here,
but that does not hurt anything.
maxim [Thu, 14 Mar 2002 16:05:06 +0000 (16:05 +0000)]
Teach REST how to restart a file transfer after 2^31 bytes: now yylex()
returns off_t in yylval.u.o. REST is the only user of yylval.u.o at the
moment.
dfr [Thu, 14 Mar 2002 10:24:00 +0000 (10:24 +0000)]
* Add some KTR messages for IPIs.
* Don't call ast() from interrupt() - if we switch, then we will miss
writing cr.eoi which will prevent the current cpu from receiving
interrupts until the current thread is resumed. The call to ast()
happens magically in exception_restore where it is safe.
* Add DDB 'show irq' command to examine interrupt hardware state.
dfr [Thu, 14 Mar 2002 09:28:05 +0000 (09:28 +0000)]
* Use a mutex to protect the RID allocator.
* Use ptc.g instead of ptc.l so that TLB shootdowns are broadcast to the
coherence domain.
* Use smp_rendezvous for pmap_invalidate_all to ensure it happens on all
cpus.
* Dike out a DIAGNOSTIC printf which didn't compile.
* Protect the internals of pmap_install with cpu_critical_enter/exit.
dfr [Thu, 14 Mar 2002 09:20:07 +0000 (09:20 +0000)]
Move the call to pmap_bootstrap to after the initialisation of thread0.
This allows us to use mutexes in pmap safely. Also initialise fpcurthread
for cpu0 so that ia64_fpstate_check doesn't barf during boot.
alfred [Thu, 14 Mar 2002 01:32:30 +0000 (01:32 +0000)]
Fixes to make select/poll mpsafe.
Problem:
selwakeup required calling pfind which would cause lock order
reversals with the allproc_lock and the per-process filedesc lock.
Solution:
Instead of recording the pid of the select()'ing process into the
selinfo structure, actually record a pointer to the thread. To
avoid dereferencing a bad address all the selinfo structures that
are in use by a thread are kept in a list hung off the thread
(protected by sellock). When a selwakeup occurs the selinfo is
removed from that threads list, it is also removed on the way out
of select or poll where the thread will traverse its list removing
all the selinfos from its own list.
Problem:
Previously the PROC_LOCK was used to provide the mutual exclusion
needed to ensure proper locking, this couldn't work because there
was a single condvar used for select and poll and condvars can
only be used with a single mutex.
Solution:
Introduce a global mutex 'sellock' which is used to provide mutual
exclusion when recording events to wait on as well as performing
notification when an event occurs.
Interesting note:
schedlock is required to manipulate the per-thread TDF_SELECT
flag, however if given its own field it would not need schedlock,
also because TDF_SELECT is only manipulated under sellock one
doesn't actually use schedlock for syncronization, only to protect
against corruption.
bmah [Thu, 14 Mar 2002 01:29:31 +0000 (01:29 +0000)]
Add a warning that URLs in this document are subject to change (in
fact, they're incorrect right now). Point readers to the list
archives for current locations.
dfr [Thu, 14 Mar 2002 00:28:10 +0000 (00:28 +0000)]
Don't restore r13 when returning to kernel mode. We may have migrated to
a different cpu since the exception_save and r13 needs to point at the
current cpu's pcpu structure.
green [Wed, 13 Mar 2002 23:48:08 +0000 (23:48 +0000)]
Rename SI_SUB_MUTEX to SI_SUB_MTX_POOL to make the name at all accurate.
While doing this, move it earlier in the sysinit boot process so that the
VM system can use it.
After that, the system is now able to use sx locks instead of lockmgr
locks in the VM system. To accomplish this, some of the more
questionable uses of the locks (such as testing whether they are
owned or not, as well as allowing shared+exclusive recursion) are
removed, and simpler logic throughout is used so locks should also be
easier to understand.
This has been tested on my laptop for months, and has not shown any
problems on SMP systems, either, so appears quite safe. One more
user of lockmgr down, many more to go :)
rnordier [Wed, 13 Mar 2002 19:00:19 +0000 (19:00 +0000)]
Clarify the cylinder > 1023 issue, now that EDD support is automatic.
Also drop a note about undocumented features that was intended to
cover the since-documented slice-selection syntax.
ue [Wed, 13 Mar 2002 13:10:22 +0000 (13:10 +0000)]
Fix some of the worst sgml mistakes in this document:
- paragraphs are closed with </para>, not <para>
- for each opening tag, there should be a closing tag
Not fixed (yet): block elements inside inline elements
Noticed during translation, hunted down with suppe/slashexpand
ru [Wed, 13 Mar 2002 11:03:36 +0000 (11:03 +0000)]
Implement -m and -p loader(8) "boot" command options in boot2.
(This is more useful for 4.x where boot blocks can still load
kernels, modulo the PR kern/17422.)
murray [Wed, 13 Mar 2002 09:54:31 +0000 (09:54 +0000)]
* Simplify the synopsis.
* Remove trailing whitespace at EOL.
* Various grammar cleanups.
* Note that MAKE_ISOS is disabled by default.
* Use more descriptive mdoc markup.
* Use proper references for the online FDP documents.
luigi [Wed, 13 Mar 2002 09:23:11 +0000 (09:23 +0000)]
Add a readonly sysctl variable of type string, kern.bootp_cookie,
which is initialized with whatever string a dhcp/bootp server passes
as vendor tag 134.
There is no standard tag that I know with this information, and
no vendor-defined tag that applies to FreeBSD that I could find
doing the same thing.
The intended use is to pass information to userland for run-time
configuration of a diskless client without having to run a bootp/dhcp
client for the third time (after the one in pxeboot/etherboot, and
the one in the kernel bootp), also because these clients generally
screwup the interface configuration, which is not exactly what you
want when you have your disks nfs-mounted.
murray [Wed, 13 Mar 2002 06:33:26 +0000 (06:33 +0000)]
Add a makefile to document the release building process.
Specifically, this documents the available targets and relevant
environment variables for "make release". LOCAL_PATCHES,
RELEASEDISTFILES, RELEASENOUPDATE, etc.. are covered.
A future commit should add more information about drivers.conf,
boot_crunch.conf, and other less well-known aspects of the release
build.
bmah [Wed, 13 Mar 2002 05:41:41 +0000 (05:41 +0000)]
New release notes: sparc64 support and SMP (better late than never),
via82c686 sound driver supports VIA VT8233, ich sound driver
supports SiS 7012, libz 1.1.4.
Belatedly note the MFC of the ich sound driver (also better late
than never).
imp [Wed, 13 Mar 2002 05:38:19 +0000 (05:38 +0000)]
Cleanup the recent cardbus cleanups. This fixes some of the panics
that I introduced with -v. However, other problems still remain (including
the loss of interrupts).
jake [Wed, 13 Mar 2002 04:02:27 +0000 (04:02 +0000)]
Fix a bug where the wrong number of windows were copied for a failed fill
on return to user mode. We may not have frame pointers setup for more
than 1 on return from exec.
jake [Wed, 13 Mar 2002 03:43:00 +0000 (03:43 +0000)]
Make IPI_WAIT use a bit mask of the cpus that a pmap is active on and only
wait for those cpus, instead of all of them by using a count. Oops.
Make the pointer to the mask that the primary cpu spins on volatile, so
gcc doesn't optimize out an important load. Oops again.
Activate tlb shootdown ipi synchronization now that it works. We have
all involved cpus wait until all the others are done. This may not be
necessary, it is mostly for sanity.
Make the trigger level interrupt ipi handler work.
rwatson [Wed, 13 Mar 2002 00:04:53 +0000 (00:04 +0000)]
Add a bugs notice indicating that the SEESENT flag may behave incorrectly
on interfaces with hardware loopback, and point-to-point interfaces
(unclear why that is, may need to be tracked down).
cjc [Tue, 12 Mar 2002 20:59:35 +0000 (20:59 +0000)]
Run dumpon(8) early so crashes during startup can be caught. In
addition, take out the checks on the $dumpdev. dumpon(8) behaves well
if given a non-existent filename. It gives a nice error message which
is better rather than the current silent failure.
cjc [Tue, 12 Mar 2002 20:25:25 +0000 (20:25 +0000)]
The reload of ipf(8) rules should depend on $ipfilter_enable, not
$ipfilter_active. $ipfilter_enable is set to "NO" if modules fail to
load, and $ipfilter_active can be "YES" when we are not using ipf(8).
gad [Tue, 12 Mar 2002 19:48:32 +0000 (19:48 +0000)]
Simple fix so the 'LOGIN FAILURE' message send to syslog will include
the correct userid, instead of random garbage. This bug does not
exist in -stable.
luigi [Tue, 12 Mar 2002 13:55:19 +0000 (13:55 +0000)]
Document the existence of machdep.guessed_bootdev, as suggested
by Sheldon.
For a detailed description look at the commit log for sysctl.c
rev.1.42 -- i do not think it is appropriate to put the full
description in this manpage, and the "boot" and "loader" manpages
where this description might go are also missing a description of
a number of similar variables, so i think this it is ok to limit
documentation to this now, and update it later when I (or someone
else) have a chance to revise "boot" and "loader".
murray [Tue, 12 Mar 2002 08:37:50 +0000 (08:37 +0000)]
* Add print/teTeX to the list of important packages for disc #3. This
very large package is exactly the kind of thing that users buy the
CDs for, so leaving it off of a 4 CD set is very bad.
* Properly quote the last security/sudo entry.
* Add a comment in the CDROM #2 section explaining that packages don't
typically go on this disc.
jeff [Tue, 12 Mar 2002 04:00:11 +0000 (04:00 +0000)]
This patch adds the "LOCKSHARED" option to namei which causes it to only acquire shared locks on leafs.
The stat() and open() calls have been changed to make use of this new functionality. Using shared locks in
these cases is sufficient and can significantly reduce their latency if IO is pending to these vnodes. Also,
this reduces the number of exclusive locks that are floating around in the system, which helps reduce the
number of deadlocks that occur.
A new kernel option "LOOKUP_SHARED" has been added. It defaults to off so this patch can be turned on for
testing, and should eventually go away once it is proven to be stable. I have personally been running this
patch for over a year now, so it is believed to be fully stable.