wollman [Wed, 18 Mar 1998 01:40:12 +0000 (01:40 +0000)]
Add preliminary support for IEEE 802.1Q VLAN tagging. It doesn't actually
work reliably yet (I've had panics), but it does seem to occasionally
be able to transmit and receive syntactically-correct packets.
Also fixes one of if_ethersubr.c's legion style bugs, and removes
the hostcache code from standard kernels---the code that depends on it
is not going to happen any time soon, I'm afraid.
sos [Tue, 17 Mar 1998 10:45:18 +0000 (10:45 +0000)]
Fixed missing filemark on close if data written to tape.
Don't try to flush buffers if the drive says it has none.
More error checking and reporting.
Hack: if drive hangs, it can be reset by issuing a mt -f device offline.
I've been able to make several 4G backups. However there is still problems
with some configurations. It is not clear if it is hardware or driver
problems yet.
dyson [Tue, 17 Mar 1998 06:30:52 +0000 (06:30 +0000)]
Correct a severely evil bug in the vtruncbuf code. It didn't cause
me any problems until after the previous commit. This problem then
caused a severe case of creeping crud on my diskdrive, and hosed
my system so bad, that I needed to do a complete reinstall. Sorry!!!
jkh [Mon, 16 Mar 1998 14:33:18 +0000 (14:33 +0000)]
1. If device node already exists, don't gratuituously try to make it
again.
2. Don't create slice entries when running multi-user; it adds far too
much to sysinstall's startup time. User is expected to have correct
slice entries after system is installed.
bde [Mon, 16 Mar 1998 11:58:46 +0000 (11:58 +0000)]
Restored an (apparently unnecessary) -B for installing lib-tools.
The install target is -j-unsafe in general, so we use -B for
installing everything in `make world'.
msmith [Mon, 16 Mar 1998 11:50:39 +0000 (11:50 +0000)]
Use dkmakeminor() rather than magic knowledge of the size and location of
the slice field. Handle incomprehensible slice numbers slightly better.
Suggested by: bde
phk [Mon, 16 Mar 1998 10:06:58 +0000 (10:06 +0000)]
Be less draconian about the TSC if APM is configured, use it for
timecounting if APM-BIOS isn't found.
Be just as draconian about SMP as always, but explain it better.
dyson [Mon, 16 Mar 1998 01:56:03 +0000 (01:56 +0000)]
Some VM improvements, including elimination of alot of Sig-11
problems. Tor Egge and others have helped with various VM bugs
lately, but don't blame him -- blame me!!!
pmap.c:
1) Create an object for kernel page table allocations. This
fixes a bogus allocation method previously used for such, by
grabbing pages from the kernel object, using bogus pindexes.
(This was a code cleanup, and perhaps a minor system stability
issue.)
pmap.c:
2) Pre-set the modify and accessed bits when prudent. This will
decrease bus traffic under certain circumstances.
vfs_bio.c, vfs_cluster.c:
3) Rather than calculating the beginning virtual byte offset
multiple times, stick the offset into the buffer header, so
that the calculated offset can be reused. (Long long multiplies
are often expensive, and this is a probably unmeasurable performance
improvement, and code cleanup.)
vfs_bio.c:
4) Handle write recursion more intelligently (but not perfectly) so
that it is less likely to cause a system panic, and is also
much more robust.
vfs_bio.c:
5) getblk incorrectly wrote out blocks that are incorrectly sized.
The problem is fixed, and writes blocks out ONLY when B_DELWRI
is true.
vfs_bio.c:
6) Check that already constituted buffers have fully valid pages. If
not, then make sure that the B_CACHE bit is not set. (This was
a major source of Sig-11 type problems.)
vfs_bio.c:
7) Fix a potential system deadlock due to an incorrectly specified
sleep priority while waiting for a buffer write operation. The
change that I made opens the system up to serious problems, and
we need to examine the issue of process sleep priorities.
vfs_cluster.c, vfs_bio.c:
8) Make clustered reads work more correctly (and more completely)
when buffers are already constituted, but not fully valid.
(This was another system reliability issue.)
vfs_subr.c, ffs_inode.c:
9) Create a vtruncbuf function, which is used by filesystems that
can truncate files. The vinvalbuf forced a file sync type operation,
while vtruncbuf only invalidates the buffers past the new end of file,
and also invalidates the appropriate pages. (This was a system reliabiliy
and performance issue.)
10) Modify FFS to use vtruncbuf.
vm_object.c:
11) Make the object rundown mechanism for OBJT_VNODE type objects work
more correctly. Included in that fix, create pager entries for
the OBJT_DEAD pager type, so that paging requests that might slip
in during race conditions are properly handled. (This was a system
reliability issue.)
vm_page.c:
12) Make some of the page validation routines be a little less picky
about arguments passed to them. Also, support page invalidation
change the object generation count so that we handle generation
counts a little more robustly.
vm_pageout.c:
13) Further reduce pageout daemon activity when the system doesn't
need help from it. There should be no additional performance
decrease even when the pageout daemon is running. (This was
a significant performance issue.)
vnode_pager.c:
14) Teach the vnode pager to handle race conditions during vnode
deallocations.
bde [Sun, 15 Mar 1998 04:52:58 +0000 (04:52 +0000)]
Don't force NOPIC for building tools at all for now, so that some
(slightly stale) shared libraries get installed before non-tools
are linked. The 2-stage build of the libraries has never really
worked, since we link to the libraries built in the first stage.
markm [Sat, 14 Mar 1998 21:13:48 +0000 (21:13 +0000)]
Link this against libcrypt. Crypt is not directly called, but is called from linked
in code. I'll merge this to STABLE as well.
PR: 5999
Submitted by: robert@cyrus.watson.org
dyson [Sat, 14 Mar 1998 19:50:36 +0000 (19:50 +0000)]
Disable the vfs.ioopt option for now, so that we don't get gratuitious
bugreports. I might not be able to fix the problems before 3.0, due
to other, more important things.
bde [Sat, 14 Mar 1998 14:08:29 +0000 (14:08 +0000)]
Improved comparison of ${DPADD} with ${LDADD} for the checkdpadd target.
`BINFORMAT=foo make checkdpadd' in /usr/src now reports only 2 false
negatives (in libss and init). (BINFORMAT=foo is to turn off better
handling of the a.out case.)
tegge [Sat, 14 Mar 1998 04:13:56 +0000 (04:13 +0000)]
Add a BOOTP_WIRED_TO option, for use on machines with multiple network
cards where the first detected card should not be used for bootp.
Submitted by: Doug Ambrisko <ambrisko@whistle.com>
tegge [Sat, 14 Mar 1998 03:25:18 +0000 (03:25 +0000)]
Update workaround for limitations in the arp code.
Adjust the RPC timeout message which occured when the old workaround
broke to show the correct IP address.
tegge [Sat, 14 Mar 1998 03:11:50 +0000 (03:11 +0000)]
On SMP systems, initially follow the MP spec with regard to which pin
on the IOAPIC being connected to the 8254 timer interrupt.
Verify that timer interrupts are delivered. If they aren't, attempt
a fallback to mixed mode (i.e. routing the timer interrupt via the 8259 PIC).
tegge [Sat, 14 Mar 1998 03:02:15 +0000 (03:02 +0000)]
Don't use the standard macros for disabling/enabling interrupt.
On SMP systems, this left the mpintr_lock simplelock locked, causing
further calls to disable_intr to deadlock or panic.
jdp [Sat, 14 Mar 1998 01:40:31 +0000 (01:40 +0000)]
Disable support for the a.out-i386-bsd target. Everything it can do
seems to be supported in the a.out-i386-freebsd target. When both
are present, there are sometimes complaints of "ambiguous file
format."
jb [Fri, 13 Mar 1998 21:12:12 +0000 (21:12 +0000)]
On i386, freebsd.h and freebsd-elf.h have been merged to combine
aout and elf support. freebsd-elf.h died as a result, so the BINFORMAT
test for elf in src/gnu/usr.bin/cc/cc_tool/Makefile will need to
use freebsd.h, not freebsd-elf.h. That means that alpha will have to
go the same way. The new alpha/freebsd.h has the alpha/freebsd-elf.h
definitions merged in.
bde [Fri, 13 Mar 1998 09:41:58 +0000 (09:41 +0000)]
Build all tools shared, and don't build any shared libraries for tools.
Build libraries (for linking the tools to) in a more correct order
(for linking freshly created shared libraries to each other). This
is probably a no-op now that shared libraries for tools aren't
built, but I didn't test any intermediate versions. Security-related
directories that are not built by default may now be misordered
for the shared case.
Don't build libcompat specially. It isn't used for tools, and
shouldn't be used in /usr/src (it is only used for IPXrouted and
crufty games).
Added missing ${.CURDIR} to existence tests for library directories.
Existence tests for top-level directories are still broken.
Test for library directories actually being built, not for directories
above them.
guido [Thu, 12 Mar 1998 19:36:18 +0000 (19:36 +0000)]
Fix for mmap of char devices bug as described in OpenBSD advisory of
1998/02/20
Reviewed by: John Dyson
Submitted by: "Cy Schubert" <cschuber@uumail.gov.bc.ca>
bde [Thu, 12 Mar 1998 14:09:55 +0000 (14:09 +0000)]
Changed speed_t from long to unsigned long. POSIX.1 requires an
unsigned integral type. Changing it doesn't seem to cause any
sign extension bugs in /usr/src. In the kernel, this is partly
because `struct speedtab' and its lookup function are too bogus
to use speed_t's for speeds - they use ints.
bde [Thu, 12 Mar 1998 13:03:06 +0000 (13:03 +0000)]
Put sources in SRCS and don't depend on them in beforedepend. IIRC,
this is to fix `make -j50' where `make -j18' worked. The race may
just have been more likely to be lost for -j50.
bde [Thu, 12 Mar 1998 12:52:24 +0000 (12:52 +0000)]
Fixed `make -jN depend' (N >= 2) by removing the beforedepend
target. .ORDER doesn't work right, but is used for things related
to the depend target. It "works" for the depend target by skipping
the build of .depend when N >= 2 and there is a non-default
beforedepend target with no rules. Recent fixes made almost all
the beforedepend targets in the tree a no-op except for this bug.
bde [Thu, 12 Mar 1998 12:00:26 +0000 (12:00 +0000)]
Improved comments and order for the `all' case:
- fixed comment about vn0.
- improved other comments.
- sorted lists alphabetically within lines.
- split up and sorted lines more logically.
bde [Thu, 12 Mar 1998 10:55:02 +0000 (10:55 +0000)]
Fixed missing SHLIBDIR in GCC_EXEC_PREFIX.
Add the path to the source .mk files to the beginning of .MAKEFLAGS
instead of to the end, so that there is more chance of it having
priority. Additions in /etc/make.conf still have priority for
sub-makes if they are also at the beginning, although this is
probably not wanted for building /usr/src.
Use ${MK_FLAGS} for building dependencies for tools. This saves
time building dependencies for tools that won't be created (mainly
profiled libraries) and will be necessary to give correct dependencies
when tools are built static.
Spell the object directory as ${OBJDIR} consistently (even when we know
that ${OBJDIR} == "obj").
bde [Thu, 12 Mar 1998 09:55:57 +0000 (09:55 +0000)]
Fixed breakage of the !SMP case in vm_page_zero_idle() in the
previous commit. Opportunities to clean pages were often missed,
and leaving of the idle state was sometimes delayed until the next
interrupt (after any that occurred while cleaning).
Fixed an unstaticization, a syntax error and a style bug in the
previous commit.