Adapt sysinstall to use the new msgNoYes() function which assumes
no as a default. Sysinstall should be both less dangerous and less
annoying as a result of this change, though that's just my opinion
(since they're the defaults which annoy ME the least :).
Add a new function, dialog_noyes(), for sysinstall to be able to
present questinos with a different default answer. Somebody submitted
a patch to me once which did something this but I lost it (my bad) so
I'm just going to re-implement it with thanks to whomever it was who
gave me the idea.
Marcel Moolenaar [Wed, 13 Dec 2000 23:15:12 +0000 (23:15 +0000)]
Fix include directories for crossbuilding.
aicasm is run on the build machine and therefore needs to be
compiled and linked against the headers and libraries (resp)
of the build machine. Since normally the default include
directories are search after any specified on the command
line, make sure we don't accidentally pick up machine
dependent headers from the kernel compile directory by
specifying /usr/include first.
John Baldwin [Wed, 13 Dec 2000 21:53:42 +0000 (21:53 +0000)]
- Add a new flag MTX_QUIET that can be passed to the various mtx_*
functions. If this flag is set, then no KTR log messages are issued.
This is useful for blocking excessive logging, such as with the internal
mutex used by the witness code.
- Use MTX_QUIET on all of the mtx_enter/exit operations on the internal
mutex used by the witness code.
- If we are in a panic, don't do witness checks in witness_enter(),
witness_exit(), and witness_try_enter(), just return.
Warner Losh [Wed, 13 Dec 2000 21:52:44 +0000 (21:52 +0000)]
o Remove the COMPAT_OLDPCI option now that Mike removed it.
o Add pmtimer device
o Shorten scsi settle time to 1 second, since that's what I use and
I'm tired of remerging it every time.
Use kinfo_proc instead of eproc (which Kirk deep-sixed earlier this week)
Generate a version string that looks just like a real Linux one - almost :)
Use sbufs everywhere instead of sprintf(). Note that this is still imperfect,
as the code does not check whether the sbuf overflowed - but it'll still
work better than before, since if the sbuf overflows, the code now simply
copies out 0 bytes instead of causing a trap (or worse, corrupting kernel
structures)
John Baldwin [Wed, 13 Dec 2000 18:57:15 +0000 (18:57 +0000)]
If we fail to emulate a vm86 trap in kernel mode, then we use
vm86_trap() to return to the calling program directly. vm86_trap()
doesn't return, thus it was never returning to trap() to release
Giant. Thus, release Giant before calling vm86_trap().
-Change manufacture ID for REX-5535AC, REX-5535X, REX-9835X, and REX-9835Z
from "PCMCIA SCSI MBH1040" to "PCMCIA SCSI MBH10401" "01". They are
based on the spc driver.
This will fix the conflicts of entry with REX-5536AM, REX-9836A,
and ICM PSC-2401 ("MBH10404" ones) which are based on stg driver.
The problem was pointed out in bsd-nomads several times since PAO2 days.
-Comment out the entry for "MBH10401" ones. The spc driver is
not supported yet.
-Add more comment about cards which has broken CIS
(some cards which has tuple of "PCMCIA SCSI MBH10404" "01").
Reported by: takachan@running-dog.net, y-nakaga@nwsl.mesh.ad.jp,
yuki@dayo.ne.jp
Obtained from: discussion in bsd-nomads mailing list
Seigo Tanimura [Wed, 13 Dec 2000 10:01:00 +0000 (10:01 +0000)]
- If swap metadata does not fit into the KVM, reduce the number of
struct swblock entries by dividing the number of the entries by 2
until the swap metadata fits.
- Reject swapon(2) upon failure of swap_zone allocation.
This is just a temporary fix. Better solutions include:
(suggested by: dillon)
o reserving swap in SWAP_META_PAGES chunks, and
o swapping the swblock structures themselves.
Jake Burkholder [Wed, 13 Dec 2000 09:23:53 +0000 (09:23 +0000)]
Introduce a new potientially cleaner interface for accessing per-cpu
variables from i386 assembly language. The syntax is PCPU(member)
where member is the capitalized name of the per-cpu variable, without
the gd_ prefix. Example: movl %eax,PCPU(CURPROC). The capitalization
is due to using the offsets generated by genassym rather than the symbols
provided by linking with globals.o. asmacros.h is the wrong place for
this but it seemed as good a place as any for now. The old implementation
in asnames.h has not been removed because it is still used to de-mangle
the symbols used by the C variables for the UP case.
Kirk McKusick [Wed, 13 Dec 2000 08:30:35 +0000 (08:30 +0000)]
Preventing runaway kernel soft updates memory, take three.
Previously, the syncer process was the only process in the
system that could process the soft updates background work
list. If enough other processes were adding requests to that
list, it would eventually grow without bound. Because some of
the work list requests require vnodes to be locked, it was
not generally safe to let random processes process the work
list while they already held vnodes locked. By adding a flag
to the work list queue processing function to indicate whether
the calling process could safely lock vnodes, it becomes possible
to co-opt other processes into helping out with the work list.
Now when the worklist gets too large, other processes can safely
help out by picking off those work requests that can be handled
without locking a vnode, leaving only the small number of
requests requiring a vnode lock for the syncer process. With
this change, it appears possible to keep even the nastiest
workloads under control.
Bosko Milekic [Wed, 13 Dec 2000 05:13:02 +0000 (05:13 +0000)]
Eliminate a race in MEXTFREE(). The reference counter decrement and test
was not atomic. We now make sure that we free the ext buf if the reference
count is about to reach 0 but also make sure that nobody else has done it
before us.
While I'm here, change refcnt to u_int (from long). This fixes a compiler
warning regarding use of atomic_cmpset_long on i386.
Mike Smith [Wed, 13 Dec 2000 01:28:00 +0000 (01:28 +0000)]
Updates to match changes elsewhere in the PCI subsystem:
- Remove redundant header-type-specific support in the cardbus pcibus
clone. The bridges don't need this anymore.
- Use pcib_get_bus instead of the deprecated pci_get_secondarybus.
- Implement read/write ivar support for the pccbb, and teach it how
to report its secondary bus number. Save the subsidiary bus number
as well, although we don't use it yet.
Mike Smith [Wed, 13 Dec 2000 01:25:11 +0000 (01:25 +0000)]
Next round of PCI subsystem updates:
- Break out the /dev/pci driver into a separate file.
- Kill the COMPAT_OLDPCI support.
- Make the EISA bridge attach a bit more like the old code; explicitly
check for the existence of eisa0/isa0 and only attach if they don't
already exist. Only make one bus_generic_attach() pass over the
bridge, once both busses are attached. Note that the stupid Intel
bridge's class is entirely unpredictable.
- Add prototypes and re-layout the core PCI modules in line with
current coding standards (not a major whitespace change, just moving
the module data to the top of the file).
- Remove redundant type-2 bridge support from the core PCI code; the
PCI-CardBus code does this itself internally. Remove the now
entirely redundant header-class-specific support, as well as the
secondary and subordinate bus number fields. These are bridge
attributes now.
- Add support for PCI Extended Capabilities.
- Add support for PCI Power Management. The interface currently
allows a driver to query and set the power state of a device.
- Add helper functions to allow drivers to enable/disable busmastering
and the decoding of I/O and memory ranges.
- Use PCI_SLOTMAX and PCI_FUNCMAX rather than magic numbers in some
places.
- Make the PCI-PCI bridge code a little more paranoid about valid
I/O and memory decodes.
- Add some more PCI register definitions for the command and status
registers. Correct another bogus definition for type-1 bridges.
Julian Elischer [Wed, 13 Dec 2000 00:27:33 +0000 (00:27 +0000)]
Add support for advertising the service we support if the
PADI packet contains a NULL service. This is apparently the desired
behaviour in this case, though we only allow advertising one
service. You could run multiple pppoeds to advertise multiple services.
Jake Burkholder [Wed, 13 Dec 2000 00:17:05 +0000 (00:17 +0000)]
- Change the allproc_lock to use a macro, ALLPROC_LOCK(how), instead
of explicit calls to lockmgr. Also provides macros for the flags
pased to specify shared, exclusive or release which map to the
lockmgr flags. This is so that the use of lockmgr can be easily
replaced with optimized reader-writer locks.
- Add some locking that I missed the first time.
Bill Paul [Tue, 12 Dec 2000 19:31:14 +0000 (19:31 +0000)]
Grrrrr. That last commit was supposed to be to the head, not to -stable
(even though I want the fixes in -stable anyway). I'm sure I'm going
to get flamed now for committing to -stable and -current too quickly.
*sigh*
Julian Elischer [Tue, 12 Dec 2000 18:52:14 +0000 (18:52 +0000)]
Reviewed by: Archie@freebsd.org
This clears out my outstanding netgraph changes.
There is a netgraph change of design in the offing and this is to some
extent a superset of soem of the new functionality and some of the old
functionality that may be removed.
This code works as before, but allows some new features that I want to
work with and evaluate. It is the basis for a version of netgraph
with integral locking for SMP use.
This is running on my test machine with no new problems :-)
Robert Nordier [Tue, 12 Dec 2000 17:25:06 +0000 (17:25 +0000)]
Do install-time configuration of the i386 boot0 boot manager. At
present, this is limited to turning on the packet option if any of
disk slices begin above cylinder 1023. The effect of this change
should therefore be to automatically enable LBA support, as needed,
when installing FreeBSD.
Mike Smith [Tue, 12 Dec 2000 13:20:35 +0000 (13:20 +0000)]
- We have access to our own device_t here, so use pci_read_config
rather than finding our parent pcib and using its PCI_READ_CONFIG
method.
- Fix the defines for the 32-bit I/O decode registers, and properly
process the 16-bit versions. Now we will correctly check that I/O
resources behind the bridge are going to be decoded.
- Bring the quirk for the Orion PCI:PCI bridge in here (since it
seems to want to set the secondary/supplementary bus numbers).
Ian Dowse [Tue, 12 Dec 2000 12:04:02 +0000 (12:04 +0000)]
Stop restore from looping under certain error conditions. This
corrects cases where restore would spew an infinite stream of
"Changing volumes on pipe input?" messages, or would loop waiting
for a response to the "set owner/mode for '.'" question.
Mike Smith [Tue, 12 Dec 2000 08:23:50 +0000 (08:23 +0000)]
Always build the ISA and EISA bridge code. This is slightly unintiuitive,
but serves to work around some uncleanliness whereby the ISA bus is not
found on Alpha systems with PCI:EISA bridges due to the lack of EISA code
for the Alpha.
Kirk McKusick [Tue, 12 Dec 2000 07:25:57 +0000 (07:25 +0000)]
Change the proc information returned from the kernel so that it
no longer contains kernel specific data structures, but rather
only scalar values and structures that are already part of the
kernel/user interface, specifically rusage and rtprio. It no
longer contains proc, session, pcred, ucred, procsig, vmspace,
pstats, mtx, sigiolst, klist, callout, pasleep, or mdproc. If
any of these changed in size, ps, w, fstat, gcore, systat, and
top would all stop working. The new structure has over 200 bytes
of unassigned space for future values to be added, yet is nearly
100 bytes smaller per entry than the structure that it replaced.
John Baldwin [Tue, 12 Dec 2000 04:01:35 +0000 (04:01 +0000)]
- Convert the per-eventhandler list mutex to a lockmgr lock so that it can
be safely held across an eventhandler function call.
- Fix an instance of the head of an eventhandler list being read without
the lock being held.
- Break down and use a SYSINIT at the new SI_SUB_EVENTHANDLER to initialize
the eventhandler global mutex and the eventhandler list of lists rather
than using a non-MP safe initialization during the first call to
eventhandler_register().
- Add in a KASSERT() to eventhandler_register() to ensure that we don't try
to register an eventhandler before things have been initialized.
John Baldwin [Tue, 12 Dec 2000 03:49:58 +0000 (03:49 +0000)]
Fix the assembly mutex macros to call the appropriate witness functions if
the witness code is compiled in. Without this, the witness code doesn't
notice that sched_lock is released by fork_trampoline() and thus gets all
confused about spin lock order later on.
John Baldwin [Tue, 12 Dec 2000 03:48:40 +0000 (03:48 +0000)]
Since _mtx_enter() and friends are static inline functions now instead of
macros, the mutex KTR log entries don't actually have the useful filename
and line numbers in the KTR_EXTEND case, so remove a comment claiming this
and go back to one set of KTR strings.
Mike Smith [Tue, 12 Dec 2000 03:33:02 +0000 (03:33 +0000)]
- Don't return early from the PCI:EISA bridge attachment, or we will lose
the ISA bus.
- Don't expect that a PCI:ISA bridge will have a correct class value;
if we're checking PCI IDs, only depend on these.
This should fix the loss of ISA on machines with PCI:EISA bridges like the
AS4100.
Andrew Gallatin [Tue, 12 Dec 2000 01:36:26 +0000 (01:36 +0000)]
fix AS1000/AS1000A support. It turns out the that iobus depends on the
CPU version (apecs:ev4::cia:ev5) and the irq hardware depends on the systype
previously, only ev4 AS1000s and ev5 AS1000a's would have worked.
tested by: wilko (in its -stable form)
noticed by: daniel