Joerg Wunsch [Tue, 14 Dec 1999 22:41:09 +0000 (22:41 +0000)]
Step #2 of fixing the fixit floppy.
Kill duplicates for programs that have been in the boot crunched image
as well as on the fixit floppy (pwd, newfs, hostname, test). Our
space is really too valuable to have them around there twice. I doubt
pwd needs to be there at all since it's a builtin into sh(1) anyway
(oh, and the same applies to test(1) IIRC), but heck, leave them by
now.
Use the new `fixit' target in MAKEDEV to create the /dev nodes on
the floppy, instead of including the kitchensink...
Finally, tune the values used for creating the floppy. I currently
end up with
Joerg Wunsch [Tue, 14 Dec 1999 22:36:03 +0000 (22:36 +0000)]
The target `all' evoluted into a kitchen-sink these days... It's no
longer really suitable as a default to create the various /dev nodes
to be contained on the fixit floppy, since all our proud new devide
nodes finally made the fixit floppy run over...
So instead create a new target titled `fixit' which creates just the
dev nodes for a single unit per each default driver; whoever needs
more of them is free to create whatever he needs, perhaps after
killing unused nodes before. There were more than 700 /dev nodes on
the floppy before that action, and it's still around 350 now. I doubt
all the various /dev/ugen* entries are really useful on such a tool,
so people, please check, and if you feel like more could be eliminated
from that floppy, kill'em.
While i was at it, removed traces of ft(8) that still survived even
though the driver has long since been dead.
Andrew Gallatin [Tue, 14 Dec 1999 22:35:36 +0000 (22:35 +0000)]
Finally add the Alpha OSF/1 compat code. I will add it to the
sys/modules Makefile after completing a buildworld.
History:
The bulk of this code was obtained from NetBSD approximately one year
ago (I have taken care to preserve the original NetBSD copyrights and
I thank the authors for their work.) At that time, the OSF/1 code was
what was left over from their initial bootstrapping off of OSF/1 and
did not provide support for executing shared binaries.
I have independently added support for shared libraries, and support
for some of the more obscure system calls. This code has been
available for testing and comment since January of 1999 and running on
production machines here at Duke since April.
Known working applications include:
- Netscape (all versions I've tried)
- Mathematica 3.0.2
- Splus 3.4
- ArcInfo 7.1
- Matlab (version unknown)
- SimOS
- Atom instrumented binaries (built on a real OSF/1 system)
Applications which are known not to work:
- All applications linking to libmach
- Adobe Acrobat (uses libmach)
This has been tested with applications running against shared
libraries from OSF/1 (aka Tru64) 4.0D and 4.0F.
Reviewed by: marcel, obrien
BDE-lint by: obrien
Agreed in principal to by: msmith
Jason Evans [Tue, 14 Dec 1999 20:17:52 +0000 (20:17 +0000)]
Make setjmp, longjmp, sigsetjmp, and siglongjmp weak aliases for
__setjmp, __longjmp, __sigsetjmp, and __siglongjmp, respectively.
This supports cancellation in the linuxthreads port. In the long run,
a much more comprehensive solution will necessitate more dramatic changes
to libc symbol naming, and these aliases will probably need modification
at that time.
Matthew Dillon [Tue, 14 Dec 1999 19:07:54 +0000 (19:07 +0000)]
Fix two problems: First, fix the append seek position race that can
occur due to np->n_size potentially changing if nfs_getcacheblk()
blocks in nfs_write().
Second, under -current we must supply the proper bufsize when obtaining
buffers that straddle the EOF, but due to the fact that np->n_size can
change out from under us it is possible that we may specify the wrong
buffer size and wind up truncating dirty data written by another
process.
Both problems are solved by implementing nfs_rslock(), which allows us
to lock around sensitive buffer cache operations such as those that
occur when appending to a file.
It is believed that this race is responsible for causing dirtyoff/dirtyend
and (in stable) validoff/validend to exceed the buffer size. Therefore
we have now added a warning printf for the dirtyoff/end case in current.
However, we have introduced a new problem which we need to fix at some
point, and that is that soft or intr NFS mounts may become
uninterruptable from the point of view of process A which is stuck waiting
on rslock while process B is stuck doing the rpc. To unstick process A,
process B would have to be interrupted first.
Reviewed by: Alfred Perlstein <bright@wintelcom.net>
Andrew Gallatin [Tue, 14 Dec 1999 17:35:08 +0000 (17:35 +0000)]
Improve the mapping between the hardware PCI bus numbering on multi-hose
tsunami systems and the PCI bus-numbering system of FreeBSD. Eg, the former
allows for 2 PCI bus 2's (one each on hoses 0 and 1) while the latter
needs to give each PCI bus a unique monotonically increasing number.
It has been fairly well tested and correctly maps machines with a ppb on
hose 1 as well as machines with ppbs on both hoses.
DS10s remain untested, as I do not have a pci card with a ppb which will
pass POST in a tsunami.
Nik Clayton [Tue, 14 Dec 1999 16:56:46 +0000 (16:56 +0000)]
Commented out
MAN8+= rstat_svc.8
The file it talks about doesn't exist on FreeBSD, so there's no point in
installing the manual page. There was already a comment to this effect in
this file, but the entry hadn't been commented out.
rstat.1 and rstat_svc.8 can probably actually be removed.
Søren Schmidt [Tue, 14 Dec 1999 10:25:28 +0000 (10:25 +0000)]
Have another go at the VIA support, this time use the PCI ID form the
main component in the southbridge chip to determine which VIA chip
we are dealing with.
Try to enable DMA on generic controllers that say they has the
capability, instead of relying on the BIOS to have set it up.
David E. O'Brien [Tue, 14 Dec 1999 04:48:17 +0000 (04:48 +0000)]
Install `chown' into /sbin rather than /usr/sbin as `chown' is needed by
`MAKEDEV'. And one might need to `MAKEDEV' inorder to get a device node
in order to mount /usr from.
Completely rip-out and redesign sysinstall's refresh model as well
as redoing all the menus to have proper, or at least non-hallucinogenic,
keyboard accelerators.
This requires my recent update to libdialog to work properly and will
probably also exhibit some other "interesting" behavior while the last
few missing screen clears are found (which is why I'm not going to MFC
immediately). At least now, however, sysinstall does not gratuitously
redraw random screens at the drop of a hat and drive serial console
installers out of their minds.
Brian Feldman [Tue, 14 Dec 1999 02:23:14 +0000 (02:23 +0000)]
Bug fix:
The variables "m_mclalloc_wid" and "m_mballoc_wid" were not in the
proper place. They should have been in uipc_mbuf.c and have been global,
not in mbuf.h and local per each file that uses mbuf.h.
Sorta bug fix:
In mbuf.h, the definitions of various things for KERNEL and not
KERNEL cases were very screwy. This fixes all of that which I could
find.
Bill Paul [Mon, 13 Dec 1999 21:45:13 +0000 (21:45 +0000)]
Fix some problems reported by Mike Pritchard:
- Add a flag DC_TX_INTR_ALWAYS which causes the transmit code to
request a TX done interrupt for every packet. The PNIC seems to need
this to insure that the sent TX buffers get reaped in a timely fashion.
- Try to unreset the SIA as soon as possible after resetting the whole
chip.
- Change dcphy to support either 10/100 or 10Mbps only NICs. The
built-in 21143 ethernet in Compaq Presario machines is 10Mbps only
and it doesn't work right if we try to advertise 100Mbps modes during
autoneg. When restricted to only 10mbps modes, it works fine.
Note that for now, I detect this condition by checking the PCI
subsystem ID on this NIC (which has a Compaq vendor/device ID).
Yes, I know that's what the SROM is supposed to be for. I'm deliberately
ignoring the SROM wherever possible. Sue me.
The latter two fixes allow if_dc to work correctly with the built-in
ethernet on certain Compaq Presario boxes. There are liable to be quite
a few people using these as their home systems who might want to try
FreeBSD; may as well be nice to them.
Now if anybody out there has an Alpha miata with 10Mbps ethernet and
can show me the output from pciconf -l on their system, I'd be grateful.
Warner Losh [Mon, 13 Dec 1999 17:55:23 +0000 (17:55 +0000)]
Add notes from recent HEADS UP messages:
o soren updated the ata driver. Please use 1213 or newer if
you have problems with the old stuff.
o Enshrine the night of bared axes against wd. Strongly push
users to move to ata driver.
o Alpha users need to recompile klds after 11/29.
o Mention the sound driver bridge code commit of 11/22.
o change examples in 1205 entry from wd to ad.
o Talk about new dc driver replacing all of the drivers that
Bill Paul has ever written.[*]
Matthew Dillon [Mon, 13 Dec 1999 17:34:45 +0000 (17:34 +0000)]
Add a readahead heuristic to the NFS server side code. While the server
cannot unilaterally pass data to a client it can reduce the physical
disk transaction overhead by reading larger blocks. This results in
better pipelining of requests/responses over the network and an almost
100% increase in cpu efficiency on the server. On a 100BaseTX network
NFS read performance increases from 8.5 MBytes/sec to 10 MB/sec (maxed
out), and cpu efficiency increases from 72% idle to 80% idle on the server.
Reviewed by: Alfred Perlstein <bright@wintelcom.net>
Matthew Dillon [Mon, 13 Dec 1999 17:09:34 +0000 (17:09 +0000)]
Forgot a log message in the last commit. Fix an mbuf leak in
nfs_srvcache.c related duplicate requests on a heavily loaded
server. If a duplicate request is received while the previous
request is still being processed from the cache, the previous
mbuf chain in the cache will be replaced without first being freed.
Boris Popov [Mon, 13 Dec 1999 16:24:22 +0000 (16:24 +0000)]
Bring up an if_ef driver which allows support for four ethernet
frame types. Currently it supports only IPX protocol and doesn't
affect existing functionality when not loaded.
Reviewed by: Ollivier Robert <roberto@keltia.freenix.fr>
Ollivier Robert [Mon, 13 Dec 1999 14:09:56 +0000 (14:09 +0000)]
Please welcome the brand new ntp4 daemon & utilities in the FreeBSD tree.
This is the second part of the commit (the third -- link in usr.sbin/Makefile)
will be done after a more complete review by phk & obrien.
NOTE: the number of drivers included in the default configuration is very
minimal, mainly local clocks and the one I use RAWDCF. Anyone wanting to
have a more complete version will find recompilation very easy.
It builds and runs on both alpha & i386. It also does survive "make world".
Søren Schmidt [Mon, 13 Dec 1999 10:19:39 +0000 (10:19 +0000)]
Add DMA support for the SiS 5591 and old PIIX chipsets.
Add a missing DELAY(1) in ata_wait.
Change the info from ad_version, so the ATA version from the disk can
be used to quantify the DAM modes valid for this drive, ie be more
selective with turning DMA on on older disks that should not support it..
Fix the probe for BIOS enabled DMA in the generic case, master/slave
was reversed in the test.
Check the return for ata_command in all cases, and print warnings if
it fails.
Call ata_dmainit with all dmamodes off when falling back to PIO mode,
that should take care of both the Promise & HPT366 controllers not
being able to handle the fallback...
Cleanup the printf's in the drivers, use the prober device name (if
possible) instead of ataN-master/slave.
Tor Egge [Mon, 13 Dec 1999 02:55:47 +0000 (02:55 +0000)]
Fix two problems with pipe_write():
1. Data written beyond end of pipe buffer, causing kernel memory corruption.
- Check that space is still valid after obtaining the pipe lock.
- Defer the calculation of transfer size until the pipe
lock has been obtained.
- Update the pipe buffer pointers while holding the pipe lock.
2. Writes of size <= PIPE_BUF not always atomic.
- Allow an internal write to span two contiguous segments,
so writes of size <= PIPE_BUF can be kept atomic
when wrapping around from the end to the start of the
pipe buffer.
PR: 15235
Reviewed by: Matt Dillon <dillon@FreeBSD.org>
The current code incorrectly assumes that all vlans
are configured, and/or associated with a parent device. If you
receive a frame for a VLAN that's not in the list, you walk off
the end of the list. Boom.
Submitted by: C. Stephen Gunn <csg@waterspout.com>
PR: 15291
sys/net/if_vlan.c fails to maintain the IFF_RUNNING flag on the
vlan interfaces it manages. This prevents the interface from
actually sending or receiving data.
Submitted by: C. Stephen Gunn <csg@waterspout.com>
PR: 15290
Marcel Moolenaar [Sun, 12 Dec 1999 21:24:07 +0000 (21:24 +0000)]
o Add gensetdefs to the list of tools.
o Don't set CFLAGS in the bootstrap env. It is very likely to be
overridden my any CFLAGS setting in /etc/make.conf. Setting it
here is almost useless. So far, it doesn't seem necessary.
Peter Wemm [Sun, 12 Dec 1999 20:34:11 +0000 (20:34 +0000)]
Remove a whole bunch of "CFLAGS+= -DFSNAME" cruft. It hasn't been
needed for ages, but keeps getting cut/pasted into new Makefiles.
(Once apon a time it was used to activate mount arguments in
<sys/mount.h>, but that was killed with extreme prejudice long ago)
Peter Wemm [Sun, 12 Dec 1999 16:45:58 +0000 (16:45 +0000)]
Use the -c and -h args of vnode_if.sh to generate only the .h file that
we use. The .c half is statically compiled into the kernel. It's kinda
silly to generate a .h file on the fly that has inlines to call the
.c stuff when the .c code is fixed.
Also, zap the special treatment for VFS_KLD modules. This treatment
applies to lots of things, not just VFS's.
Peter Wemm [Sun, 12 Dec 1999 16:43:05 +0000 (16:43 +0000)]
Use a seperate -c and -h mode. The vnode_if.c file is compiled only into
the kernel while the vnode_if.h header is a bunch of inlines to call the
code that is in the kernel. Generating the .h file on the fly is kinda
bogus because it has to match the one compiled into the kernel.
IMHO we should have kern/vnode_if.c and sys/vnode_if.h committed in the
tree but that's another battle.
Peter Wemm [Sun, 12 Dec 1999 16:34:43 +0000 (16:34 +0000)]
Put on asbestos suit and put a splcam() around the 'Mounting root from..'
message to stop it splitting. Every single scsi machine I've seen seems
to reliably collide with this and it's rather annoying.