benno [Thu, 9 Jan 2003 06:21:42 +0000 (06:21 +0000)]
- Remove the ignore list and replace it with a quirk list of sorts.
- Add a quirk type for devices whose interrupt properties are actually
attached to their children.
- Flag the "escc" (zs-alike serial controller) device as having this quirk.
- Rework the interrupt discovery code to deal with devices that have more than
one interrupt.
sam [Thu, 9 Jan 2003 05:39:04 +0000 (05:39 +0000)]
Invoke the driver directly when a request is submitted via crypto_dispatch
or crypto_kdispatch unless the driver is currently blocked. This eliminates
the context switch to the dispatch thread for virtually all requests.
Note that this change means that for software crypto drivers the caller
will now block until the request is completed and the callback is dispatched
to the callback thread (h/w drivers will typically just dispatch the op to
the device and return quickly). If this is an issue we can either implement
a non-blocking interface in the s/w crypto driver or use either the
"no delay" flag in the crypto request or the "software driver" capability
flag to control what to do.
jake [Wed, 8 Jan 2003 23:36:16 +0000 (23:36 +0000)]
Split this into bus specific front end(s), so that it can be used by ppc.
This abstracts out all the differences I could see between the netbsd
sparc64 and macppc zs drivers. In particular the offsets of the csr and
data registers are different, so we use a separate bus handle for each and
use bus_space_subregion to add the bus specific offsets.
gordon [Wed, 8 Jan 2003 22:53:54 +0000 (22:53 +0000)]
Steal some space from fs_fsmnt to create fs_volname and fs_uuid. The volname
will be used to support volume names with the help of a GEOM module (to be
committed). uuid will be used to deal with conflicting volume names (which
doesn't work just yet).
peter [Wed, 8 Jan 2003 22:12:01 +0000 (22:12 +0000)]
Add in a patch from tcpdump-current (that will be included in the next
import) to stop a segfault on ia64. Add a #include to get missing
prototypes, particularly malloc().
jhb [Wed, 8 Jan 2003 20:46:25 +0000 (20:46 +0000)]
Add code to parse the contents of an ACPI MADT table and to dump its
contents in the form of a comment in the acpidump output. The output
is not in the prettiest output, but it does work correctly.
alc [Wed, 8 Jan 2003 19:58:42 +0000 (19:58 +0000)]
In vm_page_alloc(), honor VM_ALLOC_ZERO for system and interrupt class
requests when the number of free pages is below the reserved threshold.
Previously, VM_ALLOC_ZERO was only honored when the number of free pages
was above the reserved threshold. Honoring it in all cases generally
makes sense, does no harm, and simplifies the code.
wollman [Wed, 8 Jan 2003 18:51:45 +0000 (18:51 +0000)]
Do not do manually what sendmail(8) can do better automatically.
Tell sendmail to clean up its own host status cache.
The error condition handling could probably be done better.
sos [Wed, 8 Jan 2003 17:44:36 +0000 (17:44 +0000)]
Dont attach a Promise chip located behind a i960 bridge/chip.
This makes it possible to run a Promise SuperTrak SX6000 with
OS type set to "Other" as well as "Linux".
rwatson [Wed, 8 Jan 2003 17:10:11 +0000 (17:10 +0000)]
For now, set only the resource limits and process priority associated
with a class, rather than all aspects of the class when switching
classes for an inetd service. Because we hard-code /daemon in the
current inetd implementation, using SETALL has unfortunate side-effects
involving the MAC code, and potentially other credential related
settings in the future. This change maintains the DoS-resistent
aspects of the class behavior, which is all that is promised in the
inetd man page.
A larger set of diffs providing more pluggability and configurability
was deferred for this more simple approach in the short term.
jhb [Wed, 8 Jan 2003 16:41:48 +0000 (16:41 +0000)]
- Use cpu_exthigh instead of executing cpuid again to retrieve it for the
print_AMD_foo() functions.
- Add a brand name table for the brand index provided on Intel CPU's in
%ebx after cpuid 1.
- For Intel CPUs, if we don't get a processor name from the extended cpuid
then use the brand index in cpuid_cpuinfo to pick a name from the brand
table and copy that name into cpu_brand.
- Replace the duplicated code to use the extended cpuid to replace
cpu_model with the processor name in the AMD and Transmeta sections of
printcpuinfo() with generic code that replaces cpu_model with
cpu_brand if cpu_brand is not an empty string. We also trim leading
spaces from cpu_brand prior to doing this since at least some processor
names (notably those of Intel CPUs) have leading spaces in the name.
- Give print_AMD_features() its own private regs[] array since
printcpuinfo() doesn't use the one it has anymore.
jhb [Wed, 8 Jan 2003 16:35:59 +0000 (16:35 +0000)]
- Add a cpu_exthigh variable to hold the highest extended cpuid value
returned from cpuid 0x80000000.
- Add a cpu_brand char array to hold the processor name returned by
cpuid 0x80000002-0x80000004 on AMD, Intel, Transmeta, and possibly
other CPUs.
- Use cpuid to set cpu_exthigh and read the processor name if it is present
in identify_cpu().
jhb [Wed, 8 Jan 2003 16:33:03 +0000 (16:33 +0000)]
Bah, get the test for more than one logical CPU right so we don't bogusly
claim a CPU has HT support when it lists 0 or 1 logical CPU's per physical
processor.
grehan [Wed, 8 Jan 2003 12:17:44 +0000 (12:17 +0000)]
Fetch the initial time from the rtc OpenFirmware node. This is a short-term
measure until the rtc h/w driver is written, and it's a lot better
than having "jan 1 1970" on filesys times.
chris [Wed, 8 Jan 2003 11:06:22 +0000 (11:06 +0000)]
o Refer to "Network Associates Laboratories" instead of "NAI Labs" or
"Network Associates Labs" in the copyright notice.
o Remove clause #3 in the license terms.
o Remove the line break from my name.
peter [Wed, 8 Jan 2003 07:02:07 +0000 (07:02 +0000)]
Add a declaration that malloc() returns a pointer, not an int. Otherwise
this segfaults on ia64. (Cannot cast an int to a pointer).
The rest of the code does it this way rather than use system includes....
peter [Wed, 8 Jan 2003 06:43:27 +0000 (06:43 +0000)]
Change this:
#include <strings.h>
...
foo = (char *)strdup(...);
To:
#include <string.h>
foo = strdup(...);
because the former segfaults on an ia64 since there is no prototype
for strdup() in strings.h. Converting an "int" to a pointer is fatal.
peter [Wed, 8 Jan 2003 06:40:35 +0000 (06:40 +0000)]
Add #include "diff.h" in order to get the prototype for xmalloc().
The corresponding warning has been ignored for ages:
prepend_args.c:75: warning: initialization makes pointer from integer
without a cast
This is fatal on ia64. You cannot convert an implicit int return from
an undeclared function to a pointer as you've lost the upper 32 bits.
On ia64, the warning is "pointer from different sized integer".
jhb [Wed, 8 Jan 2003 01:33:18 +0000 (01:33 +0000)]
Enumerate logical hyperthread CPUs manually if they aren't already listed
in the mptable. The way this works is that we determine if the system
has hyperthreading and how many logical CPU's should be in each physical
CPU by using the information returned by cpuid. During the first pass of
the mptable, we build a bitmask of the APIC IDs of the CPUs listed in the
mptable. We then scan that bitmask to see if the CPUs are already listed
by the mptable, or if there are any APIC IDs already in use that would
conflict with the APIC IDs of the logical CPUs. If that test succeeds,
then we fixup the count of application processors. Later on during the
second pass of the mptable we create fake processor entries for logical
CPUs and add them to the system.
We only need this type of fixup hack when using the mptable to enumerate
CPUs. The ACPI MADT table properly enumerates all logical CPUs.
jhb [Wed, 8 Jan 2003 01:23:16 +0000 (01:23 +0000)]
If the boot processor supports hyperthreading and contains more than one
logical CPU, display the number of logical CPUs per physical processor
underneath the list of CPU features.
peter [Tue, 7 Jan 2003 22:24:13 +0000 (22:24 +0000)]
Move the MOD_SHUTDOWN event from shutdown_post_sync to shutdown_final,
so that entities that want to use the post_sync hook to write stuff
to devices and other tidy-up can do so before the device tree is
shot down. eg: da doing a SYNC_CACHE etc. This should get crashdumps
working on mpt devices again, and stops the ia64 boxes locking up
on regular shutdown when da tries to issue the scsi commands to mpt.
mckusick [Tue, 7 Jan 2003 18:23:50 +0000 (18:23 +0000)]
This patch fixes a problem caused by applications that rapidly and
repeatedly truncate the same file. Each time the file is truncated,
a buffer is grabbed to store the indirect block numbers that need
to be freed. Those blocks cannot be freed until the inode claiming
them is written to disk. Thus, the number of buffers being held by
soft updates explodes and in extreme cases can run the kernel out
of buffers. The problem can be avoided by doing an fsync on the
file every debug.maxindirdep truncates (currently defaulted to 50).
The fsync causes the inode to be written so that the held buffers
can be freed. The check for excessive buffers is checked as part
of the existing hook for excessive dependencies (softdep_slowdown)
in the truncate code.
Reported by: David Schultz <dschultz@uclink.Berkeley.EDU>
Sponsored by: DARPA & NAI Labs.
MFC after: 3 weeks
jhb [Tue, 7 Jan 2003 18:17:18 +0000 (18:17 +0000)]
Cast the integer read as the first argument for %b to an unsigned integer
so it's value is not sign extended when assigned to the uintmax_t variable
used internally by printf. For example, if bit 31 is set in the cpuid
feature word, then %b would print out the initial value as a 16 character
hexadecimal value. Now it only prints out an 8 character value.
scottl [Tue, 7 Jan 2003 07:46:50 +0000 (07:46 +0000)]
Teach sysinstall about rpcbind, rpc.lockd, and rpc.statd. As an added
bonus, rpcbind will be enabled automatically if rpc.lockd, rpc.statd, amd,
NFS Server, or NIS is enabled.