wpaul [Wed, 25 Oct 2000 23:46:31 +0000 (23:46 +0000)]
Set the DC_TX_INTR_ALWAYS and DC_TX_STORENFWD flags for the Davicom
DM9100/DM9102 chips. Do not set DC_TX_ONE. The DC_TX_USE_TX_INTR flag
causes dc_encap() to set the 'interrupt on TX completion' bit only
once every 64 packets. This is an attempt to reduce the number
of interrupts generated by the chip. You're supposed to get a 'no more
TX buffers left' interrupt once you hit the last packet whether you
ask for one or not, however it seems the Davicom chip doesn't generate
this interrupt, or at least it doesn't generate it under the same
circumstances. The result is that if you transmit n packets, where
n is less than 64, and then wait 5 seconds, you'll get a watchdog
timeout whether you want one or not. The DC_TX_INTR_ALWAYS causes
dc_encap() to request an interrupt for every frame.
I'm still waiting on confirmation from a couple of users to see if this
fixes their problems with the Davicom DM9102 before I merge this into
-stable, but this fixed the problem for me in my own testing so I'm
willing to make the change to -current right away.
dfr [Wed, 25 Oct 2000 23:36:01 +0000 (23:36 +0000)]
Move the call to extend_heap() from main to start so that if our BSS
expands beyond the limit we will extend the address space before trying
to zero the BSS. This should give us plenty of headroom for modest
expansion of the loader.
bmah [Wed, 25 Oct 2000 21:04:09 +0000 (21:04 +0000)]
Note the MFC of ATA support for new chipsets and tagged queueing,
ATA raid support (+MFC), snc(4) driver added (+MFC), ich(4) driver
added (+MFC), IFS, libisc now added, fix to netstat(1) "in use"
percentage (+MFC).
jhb [Wed, 25 Oct 2000 20:38:08 +0000 (20:38 +0000)]
- Remove unneeded machine/ipl.h #include.
- Change the softintr() macro to do nothing on FreeBSD. Previously,
this macro would set a bit in spending and schedule the softinterrupt
thread to run. However, the bs driver never actually registers a
a software interrupt handler, so all this work achieved nothing. From
the code it is not clear what exactly the softintr() macro is actually
supposed to be doing. It looks like it is supposed to be possibly
running the hardware interrupt handler maybe? This handler is only
present in the #ifdef __NetBSD__ code however. I have no idea how this
driver handles interrupts at all, but at least it compiles now.
bmah [Wed, 25 Oct 2000 17:10:20 +0000 (17:10 +0000)]
Utilize the "-o" (origin) option recently added to pkg_create(1)
and pkg_info(1), for more accurate determination of the
"up-to-date-ness" of installed packages.
deischen [Wed, 25 Oct 2000 11:46:07 +0000 (11:46 +0000)]
Make pthread_kill() know about temporary signal handlers installed
by sigwait(). This prevents a signal from being sent to the process
when there are no application installed signal handlers.
msmith [Wed, 25 Oct 2000 06:59:06 +0000 (06:59 +0000)]
Major update to the 'twe' driver.
- Layout reorganisation to enhance portability. The driver now has
a relatively MI 'core' and a FreeBSD-specific layer over the top.
Since the NetBSD people have already done their own port, this is
largely just to help me with the BSD/OS port.
- Request ID allocation changed to improve performance (I'd been
considering switching to this approach after having failed to come
up with a better way to dynamically allocate request IDs, and seeing
Andy Doran use it in the NetBSD port of the driver convinced me
that I was wasting my time doing it any other way). Now we just
allocate all the requests up front.
- Maximum request count bumped back to 255 after characterisation
of a firmware issue (off-by-one causing it to crash with 256
outstanding commands).
- Control interface implemented. This allows 3ware's '3dm' utility to
talk to the controller. 3dm will be available from 3ware shortly.
- Controller soft-reset feature added; if the controller signals a
firmware or protocol error, the controller will be reset and all
outstanding commands will be retried.
jhb [Wed, 25 Oct 2000 05:19:40 +0000 (05:19 +0000)]
- Overhaul the software interrupt code to use interrupt threads for each
type of software interrupt. Roughly, what used to be a bit in spending
now maps to a swi thread. Each thread can have multiple handlers, just
like a hardware interrupt thread.
- Instead of using a bitmask of pending interrupts, we schedule the specific
software interrupt thread to run, so spending, NSWI, and the shandlers
array are no longer needed. We can now have an arbitrary number of
software interrupt threads. When you register a software interrupt
thread via sinthand_add(), you get back a struct intrhand that you pass
to sched_swi() when you wish to schedule your swi thread to run.
- Convert the name of 'struct intrec' to 'struct intrhand' as it is a bit
more intuitive. Also, prefix all the members of struct intrhand with
'ih_'.
- Make swi_net() a MI function since there is now no point in it being
MD.
mjacob [Wed, 25 Oct 2000 04:42:46 +0000 (04:42 +0000)]
Get rid of ridiculous ISP_PVS macro. Instead, just set an
ISP_SMPLOCK define based on the previous 5.4 major/minor release
define of PVS- because this allows us to turn it off easier.
jhb [Wed, 25 Oct 2000 00:04:16 +0000 (00:04 +0000)]
- Catch a machine/mutex.h -> sys/mutex.h I somehow missed.
- Close a small race condition. The sched_lock mutex protects
p->p_stat as well as the run queues. Another CPU could change p_stat
of the process while we are waiting for the lock, and we would end up
scheduling a process that isn't runnable.
jhb [Wed, 25 Oct 2000 00:01:39 +0000 (00:01 +0000)]
- Make the eventhandler_mutex mutex a private variable in
subr_eventhandler.c
- Move the extra #include's in sys/eventhandler.h to be protected by
the #ifndef SYS_EVENTHANDLER/#endif
wpaul [Tue, 24 Oct 2000 22:38:54 +0000 (22:38 +0000)]
Convert the USB ethernet drivers to use mutexes. Also convert
usb_ethersubr.c. This module maintains two queues for packets which
are each protected with one mutex. These are all the changes I can
do for now. Removing the USBD_NO_TSLEEP flag doesn't work yet: when
I tried it, the system would usually freeze up after a NIC had been
operating for a while. The usb_ethersubr module itself ought to
go away; this is the next thing I need to test.
archie [Tue, 24 Oct 2000 20:10:25 +0000 (20:10 +0000)]
Build the ISC library as libisc. This library comes as part of the
bind distribution, but until now was not being built as a separate
entity. For documentation, see these man pages:
obrien [Tue, 24 Oct 2000 18:48:16 +0000 (18:48 +0000)]
Dike out more for the i386 release build: NCR SCSI card; anchient WDC
SCSI card (should it ever find its way into GENERIC); LPT (we don't need
to print during install time); the parallel 'geek' port; generic USB
driver (thus some attached USB devices will not be detected and thus the
user may wonder what is going on, we couldn't do anything with the device
if only ugen attached to it anyway and we are getting very, very low on
available space; USB "Human Interface Devices" as we don't do anything
with them during installation; and USB printers (same argument as LPT).
bmah [Tue, 24 Oct 2000 17:59:28 +0000 (17:59 +0000)]
Catch up on some release notes: write combining for crash dumps,
bktr(4) update to 2.17, MFC new make(1) variable modifiers, note
the addition of style.perl.7.
julian [Tue, 24 Oct 2000 17:32:45 +0000 (17:32 +0000)]
Since neither archie nor I work at Whistle any more, change our email
addresses to be the more usefu @freebsd.org ones
so we can keep getting bug-reports.
- man pages to follow..
julian [Tue, 24 Oct 2000 16:45:58 +0000 (16:45 +0000)]
First effort at bringing these up-to-date.
This creates a skeleton ISA device driver.
I don't pretend that it's fully correct or even opitimal
but it at least creates (and compiles) a 'clean' ISA driver.
Hopefully PCI/PCCARD/etc. support will be added when I understand it.
Unlike the old version this just creates a module. The old one tried to
create a new kernel with the driver to be tested.
gshapiro [Tue, 24 Oct 2000 16:04:56 +0000 (16:04 +0000)]
Fix up the build for the STARTTLS version of sendmail (again). This method
mimics that of tcpdump in that for normal builds, sendmail will only be
built once. For 'make release', it is built once for the bin dist and
once for the crypto dist. This method also removes the need for two separate
Makefiles (which could become out of sync).
dwmalone [Tue, 24 Oct 2000 10:13:36 +0000 (10:13 +0000)]
Problem to avoid processes getting stuck in "vmopar". From Ian's
mail:
The problem seems to originate with NFS's postop_attr
information that is returned with a read or write RPC.
Within a vm_fault context, the code cannot deal with
vnode_pager_setsize() shrinking a vnode.
The workaround in the patch below stops the nfsm_postop_attr()
macro from ever shrinking a vnode. If the new size in the
postop_attr information is smaller, then it just sets the
nfsnode n_attrstamp to 0 to stop the wrong size getting
used in the future. This change only affects postop_attr
attributes; the nfsm_loadattr() macro works as normal.
The change is implemented by adding a new argument to
nfs_loadattrcache() called 'dontshrink'. When this is
non-zero, nfs_loadattrcache() will never reduce the
vnode/nfsnode size; instead it zeros n_attrstamp.
There remain other was processes can get stuck in vmopar.
jwd [Tue, 24 Oct 2000 00:08:30 +0000 (00:08 +0000)]
The write combining code in revision 1.30 needs a few additional
touch ups. The cache needs to be flushed against block
reads, and a final flush at process termination to force the
backup superblocks to disk.
I believe this will allow 'make release' to complete.
jhb [Mon, 23 Oct 2000 23:32:36 +0000 (23:32 +0000)]
Don't dink with interrupts in vm_page_zero_idle(). This code assumed it
was being called with interrupts disabled, when it was actually being called
with them enabled.
mjacob [Mon, 23 Oct 2000 18:36:03 +0000 (18:36 +0000)]
Move bogus proc reference stuff into <machine/globals.h>. There is no
more include file including <sys/proc.h>, but there still is this wonky
and (causes warnings on i386) reference in globals.h.
CURTHD is now defined in <machine/globals.h> as well. The correct thing
to do is provide a platform function for this.
mjacob [Mon, 23 Oct 2000 15:34:44 +0000 (15:34 +0000)]
Put back inclusion of proc.h so that alpha kernels (at the very least)
will compile again. I can't quite see where this was a recursive inclusion.
We probably need to do something to fix the alpha, but let's not break it
in the interim- it's broken enough.
non [Mon, 23 Oct 2000 12:55:51 +0000 (12:55 +0000)]
Add PC-Card/ISA SCSI host adpater drivers from NetBSD/pc98
(a NetBSD port for NEC PC-98x1 machines). They are ncv for NCR 53C500,
nsp for Workbit Ninja SCSI-3, and stg for TMC 18C30 and 18C50.