96546 Commits

Author SHA1 Message Date
hmp
e54b694800 Mdoc Janitor:
* Add missing `utility' word to sentence describing
	  ips(4) card configuration.

	* Remove extraneous use of .Pp, and describe the tunable
	  hw.ips.0.disable in a better way.

	* Replace wrongly used .Op mdoc macros with the .Bq macro.
	  The .Op macro should only be used when describing a
	  ``usage'' line of a utility/command.

	* Add .Er, for marking errno defines (ENOMEM etc etc)
2003-11-12 02:26:47 +00:00
peter
2d3fabf548 Cosmetic sync with i386 2003-11-12 01:49:49 +00:00
joe
f7ba36e992 Remove a gremlin so that this code compiles under -stable without
a "syntax error before `struct'" error.
2003-11-12 01:40:11 +00:00
marcel
19c69bbd49 Further work-out the handling of the high FP registers. The most
important change is in cpu_switch() where we disable the high FP
registers for the thread that we switch-out if the CPU currently
has its high FP registers. This avoids that the high FP registers
remain enabled for the thread even when the CPU has unloaded them
or the thread migrated to another processor.
Likewise, when we switch-in a thread of that has its high FP
registers on the CPU, we enable them. This avoids an otherwise
harmless, but unnecessary trap to have them enabled.

The code that handles the disabled high FP trap (in trap()) has
been turned into a critical section for the most part to avoid
being preempted. If there's a race, we bail out and have the
processor trap again if necessary.

Avoid using the generic ia64_highfp_save() function when the
context is predictable. The function adds unnecessary overhead.
Don't use ia64_highfp_load() for the same reason. The function
is now unused and can be removed.

These changes make the lazy context switching of the high FP
registers in an UP kernel functional.
2003-11-12 01:26:02 +00:00
jhb
dfaa7af61b Oh dear, forgot this file in the turnstile commit. This header defines
the turnstile API and includes several comments.

Reminded by:	peter
2003-11-11 23:08:26 +00:00
kuriyama
050378a4e0 Add ID for ALC658 CODEC.
Tested on:	GIGABYTE GA-8S655FX-L
Reviewed by:	orion
2003-11-11 22:15:17 +00:00
jhb
6cc1f7e330 Add an implementation of turnstiles and change the sleep mutex code to use
turnstiles to implement blocking isntead of implementing a thread queue
directly.  These turnstiles are somewhat similar to those used in Solaris 7
as described in Solaris Internals but are also different.

Turnstiles do not come out of a fixed-sized pool.  Rather, each thread is
assigned a turnstile when it is created that it frees when it is destroyed.
When a thread blocks on a lock, it donates its turnstile to that lock to
serve as queue of blocked threads.  The queue associated with a given lock
is found by a lookup in a simple hash table.  The turnstile itself is
protected by a lock associated with its entry in the hash table.  This
means that sched_lock is no longer needed to contest on a mutex.  Instead,
sched_lock is only used when manipulating run queues or thread priorities.
Turnstiles also implement priority propagation inherently.

Currently turnstiles only support mutexes.  Eventually, however, turnstiles
may grow two queue's to support a non-sleepable reader/writer lock
implementation.  For more details, see the comments in sys/turnstile.h and
kern/subr_turnstile.c.

The two primary advantages from the turnstile code include: 1) the size
of struct mutex shrinks by four pointers as it no longer stores the
thread queue linkages directly, and 2) less contention on sched_lock in
SMP systems including the ability for multiple CPUs to contend on different
locks simultaneously (not that this last detail is necessarily that much of
a big win).  Note that 1) means that this commit is a kernel ABI breaker,
so don't mix old modules with a new kernel and vice versa.

Tested on:	i386 SMP, sparc64 SMP, alpha SMP
2003-11-11 22:07:29 +00:00
anholt
a3bf20009f - Disable AGP on ALI chipsets if aperture size is 0.
- Fail in agp_alloc_gatt if the aperture size is 0 instead of panicing in
  contigmalloc.

Reported by:	Bjoern Fischer <bfischer@Techfak.Uni-Bielefeld.DE>
Reviewed by:	jhb
MFC after:	1 week
2003-11-11 21:49:18 +00:00
rwatson
9cd493ccaf Following the repo-copy from src/sys/modules/mac_none/Makefile,
I neglected to update the filenames/etc in mac_stub.  Do so now.
2003-11-11 21:23:54 +00:00
jhb
39d0219649 Don't probe busses in the MP Table for the MP Table PCI bridge drivers
if the bus number doesn't correspond to a PCI bus in the MP Table.

Reported by:	jhay
2003-11-11 21:19:43 +00:00
trhodes
409b8525db Help bmah out and add the ips(4) entity. 2003-11-11 19:20:13 +00:00
ume
7755ea7d71 cleanup rijndael API.
since there are naming conflicts with opencrypto, #define was
added to rename functions intend to avoid conflicts.

Obtained from:	KAME
2003-11-11 18:58:54 +00:00
trhodes
c53afacbe5 Attach ips.4 to the build. 2003-11-11 18:48:02 +00:00
trhodes
eaa937bb8e Add a manual page for the ips(4) driver.
Requested by:	obrien
Reviewed by:	scottl (older version)
2003-11-11 18:47:01 +00:00
kensmith
af4ffb5550 - Add some information about how init, securelevel, and jails
interact with each other.
	- Minor markup fix (.Dq -> .Va for a variable)

Reviewed by:	rwatson
Approved by:	blackend (mentor)
2003-11-11 18:37:50 +00:00
kensmith
b7f1084c7b - Add a note that there are two MIB variables that have per-jail
settings.

Reviewed by:	rwatson
Approved by:	blackend (mentor)
2003-11-11 18:34:29 +00:00
kensmith
3a0281dcf0 - Markup fix-ups (add .Dq, and some hard line breaks at the end
of sentences).

Approved by:	blackend (mentor)
2003-11-11 18:31:36 +00:00
kensmith
c0be2ff06a - Add a note about how jail(2) effects the securelevel.
Reviewed by:	rwatson
Approved by:	blackend (mentor)
2003-11-11 18:21:20 +00:00
jhb
bd8a6e05f8 Some motherboards like to remap the SCI (normally IRQ 9) up to a PCI
interrupt such as IRQ 22 or 19.  However, the ACPI BIOS still routes
interrupts from some PCI devices to the same intpin calling the pin
IRQ 22.  Thus, ACPI expects to address a single interrupt source via two
different names.  To work around this, if the SCI is remapped to a non-ISA
interrupt (i.e., greater than 15), then we use
acpi_OverrideInterruptLevel() function to tell ACPI to use IRQ 22 or 19
rather than IRQ 9 for the SCI.

Previously we would change IRQ 22 or 19's name to IRQ 9 when we encountered
such an Interrupt Source Override entry in the MADT which routed the SCI
properly but left PCI devices mapped to IRQ 22 or 19 w/o a routable
interrupt.

Tested by:	sos
2003-11-11 18:20:10 +00:00
sam
cff9b0702d correct typos
Pointed out by:	Mike Silbersack
2003-11-11 18:16:54 +00:00
jhb
d07df715eb Add an acpi_OverrideInterruptLevel() method that OSPM can use to override
the InterruptLevel used for the SCI.
2003-11-11 18:12:12 +00:00
jake
db726f026b Set RB_SERIAL in boothowto if the firmware output-device is ttya or ttyb.
This ensures that uart gets a higher console priority than syscons when
a serial console is being used.  Testing against the "console" environment
variable doesn't make sense since we only have one loader console driver.
2003-11-11 18:01:44 +00:00
silby
be846dcb4f Remove the m_defrag call from if_loop; testing with m_fragment
has shown that the IPv6 stack can clearly handle fragmented
mbuf chains without a problem.

MFC after:	1 week
2003-11-11 17:58:36 +00:00
sam
8a2a14a55f o add locking
o mark isr MPSAFE

Supported by:	FreeBSD Foundation
2003-11-11 17:57:03 +00:00
sam
f6943f86fd o add missing inpcb locking in tcp_respond
o replace spl's with lock assertions

Supported by:	FreeBSD Foundation
2003-11-11 17:54:47 +00:00
ume
bfe58eaccc ipsec_esp_auth is unused when IPSEC_ESP is not defined.
Reported by:	Andre Oppermann <oppermann@pipeline.ch>
2003-11-11 17:25:45 +00:00
jhb
b128cb00e2 Enable HTT CPUs by default instead of halting them by default. Users
should now only have HTT CPUs if they have explicitly asked for them
either by enabling HyperThreading in the BIOS or by using the
MPTABLE_FORCE_HTT kernel option.
2003-11-11 17:16:15 +00:00
jhb
79be2e97e9 Disable probing of HTT CPUs by default for the MP Table case. HTT CPUs
should only be used if they are enabled in the BIOS.  Now that we support
enumerating CPUs using the ACPI MADT, any HTT machine using ACPI should
respect the BIOS setting.  For HTT machines with ACPI disabled in the
kernel, the MPTABLE_FORCE_HTT kernel option can be used to try to probe HTT
CPUs like have done in the past for the MP Table case.  This option should
only be enabled if HTT is enabled in the BIOS.
2003-11-11 17:14:26 +00:00
brueffer
8ffd3da875 Add information about the EVFILT_NETDEV filter
PR:		docs/56872 (based on)
Submitted by:	Suleiman Souhlal <refugee@vt.edu>
Reviewed by:	hmp, jmg
2003-11-11 16:41:27 +00:00
ru
e57672a655 MFS: Change interface name from "nge" to "ngeth" to avoid conflict
with nge(4).
2003-11-11 16:12:05 +00:00
jhb
435e9a6198 - Remove empty rogue SMP hardware section.
- Add some additional comments about 'device apic' to note that it can be
  used in both UP and SMP kernels but is required for SMP kernels.
2003-11-11 15:52:31 +00:00
jhb
0dd55e8796 Use the same style of paragraph indention that the rest of NOTES uses in
the SMP section.
2003-11-11 15:49:37 +00:00
jhb
f1bbcb4cbc Axe rotted comment about MP Tables and PCI cards with built in bridges.
Now that we properly route PCI interrupts for the apic case, these cards
are no longer a problem.
2003-11-11 15:47:44 +00:00
sos
ebe00702c0 Centralise mode setting. Instead of doing it in all subdrivers, do
it in ata-all.c where it belongs.

Prime controller HW by always setting PIO mode first in attach.
2003-11-11 14:55:36 +00:00
simon
d8c1d25645 Sort the device lists alphabetically to make it simpler to add new
devices to the lists in the appropriate places.  This also makes it
easier to find devices in the lists.

OK'ed by:	ceri, silby
2003-11-11 13:34:53 +00:00
ru
768137e95c Use a single style of multiple inclusion protection for Netgraph headers.
Reviewed by:	archie, harti, emax
2003-11-11 12:30:37 +00:00
marcel
12457aa888 Save and restore the high FP registers in {g|s}_mcontext(). Note
that we currently do not keep track of whether the thread has
actually used the high FP registers before. If not, we should
not save them in the context which automaticly means that we
also would not restore them from the context. For now, do it
unconditionally so that we can reach functional completeness.
2003-11-11 09:53:37 +00:00
marcel
b097722b0b Fix a nasty bug that got exposed when the sendsig() and sigreturn()
functions switched to using {g|s}et_mcontext(). The problem is that
sigreturn(), being a syscall, can be given an async. context (i.e.
one corresponding to an interrupt or trap). When this happens, we
try to return to user mode via epc_syscall_return with a trapframe
that can only be used to return to user mode via exception_restore.

To fix this, we check the frame's flags immediately prior to
epc_syscall_return and branch to exception_restore for non-syscall
frames. Modify the assertion in set_mcontext() to check that if
there's a mismatch, it's because of sigreturn().
2003-11-11 09:25:19 +00:00
jkoshy
ac83b0ec2b Bound the number of iterations a thread can perform inside
ktr_resize_pool(); this eliminates a potential livelock.

Return ENOSPC only if we encountered an out-of-memory condition when
trying to increase the pool size.

Reviewed by:	jhb, bde (style)
2003-11-11 09:09:26 +00:00
scottl
bf26c6db3d Note support for the Adaptec 2410SA in the aac.4 manpage. 2003-11-11 08:40:43 +00:00
sos
f94d8d190f Update the dump code to flush buffers at the end of the dump
to avoid loosing evt cached data.
2003-11-11 07:49:45 +00:00
jake
850659706d Remove reference to sio (superseded by uart). 2003-11-11 07:49:13 +00:00
jake
0baf6f0935 Add entries for creator, splash, uart and puc, commented out until they're
made the default.  These are needed to run X.
2003-11-11 07:48:02 +00:00
jake
72ac384a02 Remove references to atkbd, atkbdc, psm and vga. 2003-11-11 07:40:45 +00:00
jake
7e2dc8ca6b Fix a typo. Allow for the creator not being stdout. 2003-11-11 07:34:08 +00:00
jake
3b6b5ab523 Add a uart attachment/syscons keyboard driver for sun keyboards. In theory
this will work with any uart backend, currently supported hardware uses
either ns8250 or z8530.
2003-11-11 07:33:24 +00:00
tjr
042225384f Fix a typo that caused mbrtowc() to always return 0. 2003-11-11 07:25:05 +00:00
jake
035780bafd Allow uart to attach to keyboards that are not the firmware's notion of
stdin, such as when using a serial console.  We must recognize these
devices here so that we can override the tty attach routine.
2003-11-11 06:52:04 +00:00
jake
300d10ae0a Assume that unit 0 is the graphics console initialized by syscons, instead
of testing if the device's firmware node is stdout.  This allows syscons to
be used when the firmware's input and output is the serial console.
2003-11-11 06:47:00 +00:00
jake
47e6302cb2 Fix a bug in the data access error recorvery. Before re-enabling the data
cache after a data access error we must discard all cache lines.  When
disabled existing cache lines are not invalidated by stores to memory, so
we risk reading stale data that was cached before the data access error if
we don't flush them.  This is especially fatal when the memory involved
is the active part of the kernel or user stack.  For good measure we also
flush the instruction cache.

This fixes random crashes when the X server probes the PCI bus through
/dev/pci.
2003-11-11 06:41:54 +00:00