Commit Graph

71087 Commits

Author SHA1 Message Date
Alfred Perlstein
85f190e4d1 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.

Proc locks are no longer used in select/poll.

Portions contributed by: davidc
2002-03-14 01:32:30 +00:00
Bruce A. Mah
54307325d3 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.
2002-03-14 01:29:31 +00:00
Kirk McKusick
9721068f95 This corrects the first of two known deadlock conditions that
come from the presence of a snapshot file.
2002-03-14 01:21:13 +00:00
Doug Rabson
b81b083819 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.
2002-03-14 00:28:10 +00:00
Brian Feldman
0e0af8ecda 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 :)
2002-03-13 23:48:08 +00:00
Robert Watson
419fe413e5 DBA update: pick the right DBA for various LOMAC copyrights. 2002-03-13 22:55:20 +00:00
Dag-Erling Smørgrav
830c02d426 Remove a bogus cast and deconstification that broke the Alpha kernel build. 2002-03-13 19:16:41 +00:00
Dag-Erling Smørgrav
979f47f40d Back out previous commit, it was the wrong patch! 2002-03-13 19:13:41 +00:00
Dag-Erling Smørgrav
51238e752e Remove a bogus cast that breaks the Alpha kernel build due to -Werror. 2002-03-13 19:12:31 +00:00
Robert Nordier
8a1917d017 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.
2002-03-13 19:00:19 +00:00
Giorgos Keramidas
7167868368 Fix syntax error. 2002-03-13 18:37:40 +00:00
David E. O'Brien
87120eee8e Support linking with -z combreloc (combine and sort reloc sections) and with
--shared -z combreloc (shared library, combine & sort relocs)

Submitted by:		peter
Bribed by:		peter
Fixes:			IA-64, Kaffe, and QT
Doesn't fix ports by:	kris
Tested on:		make(1) release w/docproj
Desired for:		5.0-DP#1
Approved by:		murray
Seconded by:		jhb
2002-03-13 18:26:59 +00:00
Warner Losh
20fe00734b Add 5th parameter to pci_read_device specifying the size of the object
to create.
2002-03-13 16:32:11 +00:00
Udo Erdelhoff
a3ead5848f SGML fixes, part2: block elements like lists do not belong into inline
elements like paragraphs

This is a markup-only commit (just like the last one)

MFC after:	14 days
2002-03-13 15:29:51 +00:00
Robert Watson
23ed9ff689 Document the "lomac_enable" rc.conf switch.
Reminded by:	Makoto Matsushita <matusita@jp.FreeBSD.org>
2002-03-13 15:28:37 +00:00
Yoshihiro Takahashi
d679987554 Use the dx register for the destination port address. A immediate port
address of outb is only 8 bits.

Submitted by:	chi@bd.mbn.or.jp (Chiharu Shibata)
MFC after:	3 days
2002-03-13 13:59:41 +00:00
Yoshihiro Takahashi
e454a5425b MFi386: revision 1.502 2002-03-13 13:45:00 +00:00
Udo Erdelhoff
a10036316f 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
2002-03-13 13:10:22 +00:00
Ruslan Ermilov
cd6ab711b3 Document the "slice" syntax.
Prodded by:	ambrisko
2002-03-13 12:30:46 +00:00
Ruslan Ermilov
9662d32c73 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.)
2002-03-13 11:03:36 +00:00
Ruslan Ermilov
3e444868c4 Further document "console" (nullconsole). 2002-03-13 10:55:22 +00:00
David E. O'Brien
fb8294fed9 Tokens after #endif are not strict ISO. 2002-03-13 10:29:06 +00:00
Brian Somers
d919580716 Use the return value from snprintf() to keep a track of the length of
the display string in MPPEDispOpts.

PR:		35836
MFC After:	2 weeks
2002-03-13 10:21:19 +00:00
Murray Stokely
994c71f0c8 * 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.

Submitted by:	dd
2002-03-13 09:54:31 +00:00
Luigi Rizzo
49b144f286 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.

Manpage update to follow soon.

MFC-after: 3 days
2002-03-13 09:23:11 +00:00
Murray Stokely
64f24fd5b8 Add information about multi-session CDs from the log message of r1.4.
Also, add an examples section and show how to mount a Kodak Photo-CD.

PR:		docs/35206
2002-03-13 08:27:27 +00:00
Greg Lehey
c693a89910 Add encounter between Flinders and Baudin. 2002-03-13 07:57:24 +00:00
David E. O'Brien
d8041b613d Add note about genscripts.sh. 2002-03-13 07:16:00 +00:00
Murray Stokely
a54bda91f5 Reference release(7) in SEE ALSO. 2002-03-13 06:59:39 +00:00
Murray Stokely
de26e0ad7a 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.

Reviewed and history section added by:	phk
2002-03-13 06:33:26 +00:00
Jake Burkholder
9ad1d32f3d Fix ifdef LOCORE protection. 2002-03-13 06:04:36 +00:00
Jake Burkholder
76cf1369d7 Add a DEBUGGER_ON_POWERFAIL option. This makes the power button on ultra 10s
work like an NMI button.
2002-03-13 05:58:45 +00:00
Jake Burkholder
064d9e8af4 Fix braino. 2002-03-13 05:54:00 +00:00
Bruce A. Mah
dbde421bda 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).
2002-03-13 05:41:41 +00:00
Warner Losh
86d1f89423 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).
2002-03-13 05:38:19 +00:00
David E. O'Brien
2cadc0a98e Turn up WARNS as high as possible.
Tested by:	gcc31, gcc32, /usr/bin/cc
2002-03-13 05:14:31 +00:00
Jake Burkholder
5ce88ec47e Add support for starting and stopping cpus with ipis.
Stop the other cpus when shutting down or entering the debugger.

Submitted by:	tmm
2002-03-13 04:59:01 +00:00
Jake Burkholder
63a33ce158 Use intr_disable/intr_restore instead of doing it manually.
Submitted by:	tmm
2002-03-13 04:43:45 +00:00
David E. O'Brien
23c27fc6d9 Remove bogon from bad merge. 2002-03-13 04:39:40 +00:00
Jake Burkholder
4968137eb9 Add support for driving the clocks on secondary cpus.
Submitted by:	tmm
2002-03-13 04:38:33 +00:00
Jake Burkholder
8f5eafcdd1 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.
2002-03-13 04:02:27 +00:00
Jake Burkholder
37453e292e White space. 2002-03-13 03:55:28 +00:00
Jake Burkholder
1bc589c745 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.

Submitted by:	tmm
2002-03-13 03:43:00 +00:00
Jake Burkholder
453e54056e Add an ATOMIC_CLEAR_INT macro.
Submitted by:	tmm
2002-03-13 03:28:47 +00:00
Jake Burkholder
b8d4451640 Use the deo hosted toolchain by default. 2002-03-13 03:23:17 +00:00
Jake Burkholder
1ffbafa265 LABELOFFSET is 128 for sparc64.
Submitted by:	tmm
Forgotten by:	obrien
2002-03-13 03:17:29 +00:00
Jake Burkholder
e4c9dc6770 rtld support for sparc64.
Largely obtained from:	netbsd
Submitted by:	jake, tmm
2002-03-13 02:40:39 +00:00
Archie Cobbs
44a8ff315e Add realloc() and reallocf(), and make free(NULL, ...) acceptable.
Reviewed by:	alfred
2002-03-13 01:42:33 +00:00
Robert Watson
9ed55d1061 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).
2002-03-13 00:04:53 +00:00
Robert Watson
cd2cc2c1a8 Allow LOMAC to be loaded as part of the boot scripts using "lomac_enable"
setting in rc.conf.

Extracted from the still clammy hands of:	green
Sponsored by:	DARPA, NAI Labs
2002-03-12 21:47:31 +00:00