Commit Graph

43684 Commits

Author SHA1 Message Date
billf
9292b471d0 -Wall fixes. 1999-12-12 06:17:25 +00:00
dillon
1da2183061 Synopsis of problem being fixed: Dan Nelson originally reported that
blocks of zeros could wind up in a file written to over NFS by a client.
    The problem only occurs a few times per several gigabytes of data.   This
    problem turned out to be bug #3 below.

    bug #1:

        B_CLUSTEROK must be cleared when an NFS buffer is reverted from
        stage 2 (ready for commit rpc) to stage 1 (ready for write).
        Reversions can occur when a dirty NFS buffer is redirtied with new
        data.

        Otherwise the VFS/BIO system may end up thinking that a stage 1
        NFS buffer is clusterable.  Stage 1 NFS buffers are not clusterable.

    bug #2:

        B_CLUSTEROK was inappropriately set for a 'short' NFS buffer (short
        buffers only occur near the EOF of the file).  Change to only set
        when the buffer is a full biosize (usually 8K).  This bug has no
        effect but should be fixed in -current anyway.  It need not be
        backported.

    bug #3:

        B_NEEDCOMMIT was inappropriately set in nfs_flush() (which is
	typically only called by the update daemon).  nfs_flush()
        does a multi-pass loop but due to the lack of vnode locking it
        is possible for new buffers to be added to the dirtyblkhd list
        while a flush operation is going on.  This may result in nfs_flush()
        setting B_NEEDCOMMIT on a buffer which has *NOT* yet gone through its
        stage 1 write, causing only the commit rpc to be made and thus
        causing the contents of the buffer to be thrown away (never sent to
        the server).

    The patch also contains some cleanup, which only applies to the commit
    into -current.

Reviewed by:	dg, julian
Originally Reported by: Dan Nelson <dnelson@emsphone.com>
1999-12-12 06:09:57 +00:00
bp
af2fc77e5c Bump local version number to 1.3.4. 1999-12-12 05:53:02 +00:00
green
56a46611e1 This is Bosko Milekic's mbuf allocation waiting code. Basically, this
means that running out of mbuf space isn't a panic anymore, and code
which runs out of network memory will sleep to wait for it.

Submitted by:	Bosko Milekic <bmilekic@dsuper.net>
Reviewed by:	green, wollman
1999-12-12 05:52:51 +00:00
bp
8fc09c011c Update to version 1.3.4 of ncplib. Cleanup header files. 1999-12-12 05:50:07 +00:00
jkh
5dc2695cfc I shouldn't have incremented PART_OFF; it was wrong and broke label
display to boot.  Also fix some various warning fluff while I'm in
here cleaning up.
1999-12-12 04:58:02 +00:00
gibbs
28076d9c63 When booting verbose, indicate if we are using manual termination
settings for U2 cards.

Don't assume that all aic7859 cards are 2930CUs.
1999-12-12 04:54:14 +00:00
green
1d49e2f195 Move the wakeup_one() prototype from proc.h to systm.h. It now hangs
out with it's sibling, wakeup().
1999-12-12 04:21:27 +00:00
nyan
2ce6a96b2b Build a.out tools if MACHINE_ARCH == i386 and MACHINE == pc98.
The boot2 for pc98 is still a.out program.

I made the original patch, and many problems were fixed by Marcel Moolenaar.
1999-12-12 03:54:58 +00:00
dillon
7cbe0b8f16 Remove accidental pollution unrelated to previous commit. The issue
here is real but has not yet been discussed with Eivind.
1999-12-12 03:28:14 +00:00
billf
82439631b5 -Wall fixes. 1999-12-12 03:22:37 +00:00
dillon
b66fb2c648 Add MAP_NOSYNC feature to mmap(), and MADV_NOSYNC and MADV_AUTOSYNC to
madvise().

    This feature prevents the update daemon from gratuitously flushing
    dirty pages associated with a mapped file-backed region of memory.  The
    system pager will still page the memory as necessary and the VM system
    will still be fully coherent with the filesystem.  Modifications made
    by other means to the same area of memory, for example by write(), are
    unaffected.  The feature works on a page-granularity basis.

    MAP_NOSYNC allows one to use mmap() to share memory between processes
    without incuring any significant filesystem overhead, putting it in
    the same performance category as SysV Shared memory and anonymous memory.

Reviewed by: julian, alc, dg
1999-12-12 03:19:33 +00:00
billf
aeee88b81a -Wall fixes. 1999-12-12 03:04:17 +00:00
chris
645afe7387 Finally give mk_cmds(1) a man page.
PR:		docs/4691
Submitted by:	Jeroen Ruigrok/Asmodai <asmodai@wxs.nl>
1999-12-12 02:43:07 +00:00
cg
99bed6d33e make sb dependant on sbc
add support for non-pnp cards to sbc
move card identification to sbc
channel-swapping code is in sb now instead of dsp
vibra16x support is still broken, but will be fixed soon

note: sbc is now compulsory for sb cards

for pnp cards use:
device sbc0

for non-pnp cards eg:
device sbc0 at isa? port 0x240 irq 5 drq 3 flags 0x15
(hints as oldpcm)

both in addition to:
device pcm0

Reviewed by:	tanimura,dfr
Said he liked it: peter
1999-12-12 02:30:19 +00:00
billf
7c2cd0059f -Wall cleanup. 1999-12-12 02:29:54 +00:00
cg
1698a08e9a move channel-swapping support to the hardware driver since it knows the card
state best
1999-12-12 02:18:58 +00:00
cg
f1be6706cf increase buffer size, reduce number of channels allocated since we only use
1 at the moment
1999-12-12 02:16:14 +00:00
obrien
e19cc0dd4f Suport multiple ``ifconfig_*?="DHCP"'' configurations.
Currently we have a problem in that `dhclient' bails when configuring the
second interface as port 68 is already in use (by the `dhclient' started
for the first interface).

PR:		14810
Submitted by:	n_hibma
1999-12-12 01:58:30 +00:00
obrien
9e84904436 Do not add routes for localhost to the `dhclient' controlled interface.
Doing so is bogus if the loop-back interface was not configured.

Typically ``network_interfaces="auto"'' will return the list of
interfaces such that "lo0" is not first.  Thus there are times when
`dhclient' configs an interface before "lo0" is configured.

Under BSD4.4, there's no need to add the above route, as it will be
automatically generated by the kernel.

PR:		conf/14098, misc/15183
Submitted by:	luoqi (true identification of the problem)
1999-12-12 01:04:36 +00:00
ken
54d3cf8591 Quirk all Pioneer changers as changers up front, instead of waiting for the
second LUN to show up.

mjacob's change (which is correct) in rev 1.21 of cam_periph.c to elminiate
infinite retries of the SCSI busy status bit seems to have broken probing
of Pioneer changers that aren't already quirked.

The right way to fix this is probably to change things around so we can
guarantee 100% sequential probing of LUN-based changers even if they aren't
quirked.  This should fix things for now, though.
1999-12-11 23:00:44 +00:00
dcs
32eaf3a0df Trim to 24 lines. Yeah, I know, looks ugly. 1999-12-11 22:31:50 +00:00
dcs
116174e5b4 Add reference to hier(7). This gets motd just over 25 lines. I'm
don't like it, but I think this can greatly ease the learning curve
of Linux-immigrants.

Approved by: jkh
1999-12-11 21:43:38 +00:00
peter
d65d419fc8 reactivate cvs subdir build 1999-12-11 17:32:07 +00:00
marcel
2e7281ba86 Don't add MACHINE_ARCH to MAKEOBJDIRPREFIX when not cross-building.
This should fix make release.

Reported by: jhay, phk
1999-12-11 17:05:36 +00:00
eivind
287836faea Lock reporting and assertion changes.
* lockstatus() and VOP_ISLOCKED() gets a new process argument and a new
  return value: LK_EXCLOTHER, when the lock is held exclusively by another
  process.
* The ASSERT_VOP_(UN)LOCKED family is extended to use what this gives them
* Extend the vnode_if.src format to allow more exact specification than
  locked/unlocked.

This commit should not do any semantic changes unless you are using
DEBUG_VFS_LOCKS.

Discussed with:	grog, mch, peter, phk
Reviewed by:	peter
1999-12-11 16:13:02 +00:00
peter
ff090abf51 Update files generated by configure. 1999-12-11 15:12:37 +00:00
jdp
5938dee1c9 Something went wrong with an earlier commit and these files ended up
empty.  Fix that with help from grog.
1999-12-11 15:12:31 +00:00
peter
f76c207acb Unmangle cvs's MD5* calls. 1999-12-11 15:10:02 +00:00
peter
17ef7b81d6 Take a shot at using mkstemp() since we have a __warn_references() on
the other temporary file creation functions..
1999-12-11 14:58:02 +00:00
peter
afa6f15fc7 While comparing this with OpenBSD (ie: trying to figure out what mkstemps()
is good for... :-)), I discovered that part of the change when mkstemps()
was brought in was missed - it was missing the termination case to make
sure it doesn't walk into the suffix.  This isn't the same code OpenBSD
has, I think this is a little better as we terminate the loop in a better
spot.
1999-12-11 14:48:24 +00:00
grog
f15cf10ca6 Check in correct versions of files. Somehow null files got committed
last time.

There's a possibility that there are still things wrong with the
commit.  I wasn't able to build the version I committed, and I won't
be for another few days.  If any committer finds further omissions,
the original source archive is on freefall:~grog/picobsd.tar.gz.  Feel
free to correct.

Reported-by: "Louis A. Mamakos" <louie@TransSys.COM>
1999-12-11 14:27:12 +00:00
marcel
1d263c29d4 Install include files with mode 444. 1999-12-11 13:38:04 +00:00
peter
702fe2212d Merge error. rcs_lockfile is freed after unlock. 1999-12-11 13:19:17 +00:00
peter
d47f395242 Update for 1.10.7 update. 1999-12-11 13:11:47 +00:00
peter
aab6aeadd4 Merge cyclic changes from 1.10.7 into our mainline. I did this seperately
as cvs update -j had kittens over the whole thing and I ended up merging
it by hand.
1999-12-11 13:00:18 +00:00
peter
206fbe27a1 Merge cyclic changes for 1.10.7 only our mainline. 1999-12-11 12:50:10 +00:00
peter
474a3106d4 Revert to vendor version. Sigh, this left the vendor branch because
of a fix for a y2k non-problem. :-(
1999-12-11 12:42:49 +00:00
peter
b38569ff99 This commit was generated by cvs2svn to compensate for changes in r54427,
which included commits to RCS files with non-trunk default branches.
1999-12-11 12:24:21 +00:00
peter
784ea5066c Import cvs-1.10.7. There are a number of nasty bugs that have been fixed.
Obtained from:  cyclic.com
1999-12-11 12:24:21 +00:00
peter
25155fc40f Turn off cvs for a moment pending import of a newer version.. 1999-12-11 12:12:54 +00:00
peter
903db590c7 Reclaim UPAGES_HOLE (8k) that was chopped out of process address space.
The UPAGES have not been there since Jan '96, but the hole was preserved
for BSD/OS binary compatability.  This has been fixed other ways (%ebx
now has a pointer to PS_STRINGS), and the stack is nowhere near where
it used to be so this hack isn't required anymore.
1999-12-11 10:54:06 +00:00
peter
a9e62f9902 Don't simulate a pseudo address-space beyond VM_MAXUSER_ADDRESS that
maps onto the upages.  We used to use this extensively, particularly
for ps and gdb.  Both of these have been "fixed".  ps gets the p_stats
via eproc along with all the other stats, and gdb uses the regs, fpregs
etc files.

Once apon a time the UPAGES were mapped here, but that changed back
in January '96.  This essentially kills my revisions 1.16 and 1.17.
The 2-page "hole" above the stack can be reclaimed now.
1999-12-11 10:21:34 +00:00
dfr
2f2990e953 Allow kernel accesses to a small region of the user stack which is used
by the Linux emulator (and other emulators) for syscall argument
translation. The x86 port currently seems to allow unrestricted kernel
accesses to user memory.

Reviewed by: alc, gallatin
1999-12-11 09:58:06 +00:00
roger
44a06ec4a2 bktr driver 2.06 changelog 1999-12-11 07:33:36 +00:00
jlemon
4e4e4d62e2 According to RFC 793, a reset should be honored if the sequence number
is within the receive window.  Follow this behavior, instead of only
allowing resets at last_ack_sent.

Pointed out by:	jayanth@yahoo-inc.com
1999-12-11 04:05:52 +00:00
kris
17b5e08d07 Retire error(1). This is no longer useful as it applies only to the 4.xBSD
toolchain.

Reviewed by:	current@freebsd.org
Axe kindly supplied by:	Institute of Danish Surgeons
1999-12-11 03:33:33 +00:00
msmith
7f4d10be2c Major update to the Mylex DAC960 driver adding new hardware support
and fixing some major bugs.

 - Add support for the v5 firmware interface, used by the DAC1164P
   (tested) and AcceleRAID 352 (untested but should work).  We now cover
   all of the Mylex family's protocols except for v2 (used by EISA and
   Alpha-compatible cards).

 - Fix an accounting bug which resulted in endless 'poll still busy'
   messages.  In situations of high controller load the count of poll
   commands could be incremented without actually successfully launching
   a command.  This totally removes the accounting for status poll
   commnads; it was its own worst enemy.

 - Add some simple reentry prevention locks to processing of the waiting
   and completed command queues to prevent races which could result in
   I/O being done or completed twice (both are fatal).  This highlights
   a need for simple locking primitives in both the UP and SMP kernels.

 - Streamline the handling of command completion to reduce the amount of
   redundant work being done.  Remove the code which tests for commands
   that have gone missing in action; nobody has ever seen one of these
   and it wouldn't have worked properly anyhow.

 - Handle disconnection of drives from the controller in the detach,
   not shutdown method.  This avoids problems flushing the cache in
   a panic when a drive is mounted.

 - Don't call bus_generic_detach when disconnecting drives; it doesn't
   actually do anything useful.

 - Increment the log message index regardless of whether we actually
   retrieved one or not.  If we run into a message that we can't fetch,
   we don't want to spin endlessly complaining about the fact.

 - Don't assume that interrupts will work when we're flushing the
   controller.  We may think they are enabled, but in eg. a panic
   situation the controller may not be able to deliver an interrupt.
1999-12-11 00:00:13 +00:00
grog
73feefc8af Add 'custom' directory with significantly restructured build (now
using make instead of custom scripts) and two floppies instead of
one.  The resultant floppy can do everything that the individual
floppies (dial, net, install, isp, router) could do, modulo some bit
rot that has occurred since PicoBSD last compiled.  It also includes
all the programs on the fixit floppy, which could thus also die.

/bin currently contains the following files:

-sh             dump            ln              ns              sps
[               ed              login           ping            stty
badsect         ex              ls              ps              swapon
cat             expr            mkdir           pwd             sync
chgrp           fdisk           mknod           pwd_mkdb        sysctl
chmod           find            more            rdump         syslogd
chown           fsck            mount           reboot          tar
chroot          ftp             mount_cd9660    restore         telnet
clri            getty           mount_msdos     rlogin                telnetd
cp              grep            mount_nfs       rm              test
date            gunzip          mount_std       rmdir         traceroute
dd              gzip            msg             route           umount
dev_mkdb        hostname        mt              routed          vi
df              ifconfig        mv              rrestore        view
dhclient        inetd           natd            rsh             vm
dhclient-script init            netstat         sed             w
disklabel       kget            newfs           sh              zcat
dmesg           kill            nfs             sleep

Structure is in place for using the same build for the other
directories, but I'm no longer sure we need this.  The current first
floppy will run fine by itself, but the size of a compressed kernel
has increased by nearly 50% since 3.2, and there's not much space for
anything useful on the remainder of the floppy.  The current method
creates a larger mfs and can read as many floppies as the user can
stand.  The footprint appears to be round 14 MB.
1999-12-10 21:52:18 +00:00
grog
d84305a288 Add 'custom' directory with significantly restructured build (now
using make instead of custom scripts) and two floppies instead of
one.  The resultant floppy can do everything that the individual
floppies (dial, net, install, isp, router) could do, modulo some bit
rot that has occurred since PicoBSD last compiled.  It also includes
all the programs on the fixit floppy, which could thus also die.

/bin currently contains the following files:

-sh             dump            ln              ns              sps
[               ed              login           ping            stty
badsect         ex              ls              ps              swapon
cat             expr            mkdir           pwd             sync
chgrp           fdisk           mknod           pwd_mkdb        sysctl
chmod           find            more            rdump		syslogd
chown           fsck            mount           reboot          tar
chroot          ftp             mount_cd9660    restore         telnet
clri            getty           mount_msdos     rlogin		telnetd
cp              grep            mount_nfs       rm              test
date            gunzip          mount_std       rmdir		traceroute
dd              gzip            msg             route           umount
dev_mkdb        hostname        mt              routed          vi
df              ifconfig        mv              rrestore        view
dhclient        inetd           natd            rsh             vm
dhclient-script init            netstat         sed             w
disklabel       kget            newfs           sh              zcat
dmesg           kill            nfs             sleep

Structure is in place for using the same build for the other
directories, but I'm no longer sure we need this.  The current first
floppy will run fine by itself, but the size of a compressed kernel
has increased by nearly 50% since 3.2, and there's not much space for
anything useful on the remainder of the floppy.  The current method
creates a larger mfs and can read as many floppies as the user can
stand.  The footprint appears to be round 14 MB.

Work-sponsored-by:    Sitara Networks Inc.
1999-12-10 21:43:10 +00:00