Matthew Dillon [Fri, 17 Sep 2004 09:34:54 +0000 (09:34 +0000)]
Oops CALLOUT_DID_INIT had the same flags value as CALLOUT_MPSAFE, causing
all timeout functions to operate as if they were MPSAFE, which does bad
things to SMP systems!
Matthew Dillon [Fri, 17 Sep 2004 09:09:21 +0000 (09:09 +0000)]
Unbreak the SCSI drivers. Move the callout_init() from xpt_get_ccb() to
xpt_setup_ccb(). Otherwise the callout for stack-based ccb's (and there
are a LOT of them) will not be properly initialized. The only caller of
xpt_get_ccb() also calls xpt_setup_ccb().
Matthew Dillon [Fri, 17 Sep 2004 08:25:30 +0000 (08:25 +0000)]
Remove a superfluous (and incorrect due to the recent callout changes) bzero()
call.
Joerg Sonnenberger [Fri, 17 Sep 2004 03:39:39 +0000 (03:39 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Fri, 17 Sep 2004 03:25:43 +0000 (03:25 +0000)]
Move the callout init below the softc allocation. *sigh*
Joerg Sonnenberger [Fri, 17 Sep 2004 02:52:39 +0000 (02:52 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Fri, 17 Sep 2004 02:38:10 +0000 (02:38 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Fri, 17 Sep 2004 02:20:53 +0000 (02:20 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Fri, 17 Sep 2004 01:50:06 +0000 (01:50 +0000)]
It is unlikely that NetBSD wants to take this code back or that DF will
switch to XS, so just nuke those parts.
Do some header inclusion reordering according to style(9) while here,
Joerg Sonnenberger [Fri, 17 Sep 2004 01:29:45 +0000 (01:29 +0000)]
timeout/untimeout ==> callout_* for p->p_ithandle
Joerg Sonnenberger [Fri, 17 Sep 2004 01:12:30 +0000 (01:12 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Fri, 17 Sep 2004 01:09:09 +0000 (01:09 +0000)]
Fix typo.
Joerg Sonnenberger [Fri, 17 Sep 2004 01:08:13 +0000 (01:08 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Fri, 17 Sep 2004 01:03:58 +0000 (01:03 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Fri, 17 Sep 2004 00:28:44 +0000 (00:28 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Fri, 17 Sep 2004 00:21:08 +0000 (00:21 +0000)]
timeout/untimeout ==> callout_*
Matthew Dillon [Fri, 17 Sep 2004 00:18:16 +0000 (00:18 +0000)]
Move all the softclock/callout initialization out of MD and into MI. Get rid
of the extremely low-level virtual address space allocation for the old
timeout() API's data structures and simply malloc() them in the new MI code
(they will soon be removed entirely when the old API is removed). Replace
the softclock swi with a non-preempting high priority helper thread (one
per cpu). The lack of preemption allows us to retain compatibility with
splsoftclock() use elsewhere in the kernel until those uses can be cleaned up,
then we *might* make softclock threads preempt-capable.
Rewrite the callout_*() implementation to make all data structures per-cpu.
Add an MP flag (similar to what FreeBSD did), but create a separate API
function, callout_init_mp() instead of adding an additional badly defined
argument to callout_init(). callout_reset() and callout_stop() will now
complain if the supplied structure is uninitialized (zero'd, e.g.
callout_init() was not called on it).
It is our intention to obsolete the old timeout()/untimeout() APIs and work
is ongoing in that regard, and Joerg will soon import the new OpenBSD
timeout_{set,add,del}() API. The callout*() API will be retained.
In DragonFly these APIs will guarentee that the callback will occur on the
same cpu that the timeout was added on, a feature that the TCP protocol stacks
will soon be able to take advantage of.
Idea and Brainstorming by: Jeffrey Hsu, Joerg Sonnenberger, and Matthew Dillon
Joerg Sonnenberger [Fri, 17 Sep 2004 00:08:54 +0000 (00:08 +0000)]
Change the FreeBSD 5 jail sysctls to the correct DragonFly locations.
Noticed-by: Tomaz Borstnar <tomaz.borstnar@over.net>
Matthew Dillon [Fri, 17 Sep 2004 00:07:27 +0000 (00:07 +0000)]
timeout/untimeout ==> callout_* [ Adding missing callout_init()'s ].
Joerg Sonnenberger [Thu, 16 Sep 2004 23:40:24 +0000 (23:40 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Thu, 16 Sep 2004 23:34:19 +0000 (23:34 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Thu, 16 Sep 2004 23:30:10 +0000 (23:30 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Thu, 16 Sep 2004 23:19:34 +0000 (23:19 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Thu, 16 Sep 2004 23:14:29 +0000 (23:14 +0000)]
timeout/untimeout ==> callout_*
This moves the reset of the arptimer after the list processing. There's no
protection against multiple runs here, so this makes more sense.
Joerg Sonnenberger [Thu, 16 Sep 2004 23:06:42 +0000 (23:06 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Thu, 16 Sep 2004 23:01:34 +0000 (23:01 +0000)]
Fix some warnings / typos
Joerg Sonnenberger [Thu, 16 Sep 2004 22:59:06 +0000 (22:59 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Thu, 16 Sep 2004 22:35:30 +0000 (22:35 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Thu, 16 Sep 2004 22:26:22 +0000 (22:26 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Thu, 16 Sep 2004 22:12:39 +0000 (22:12 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Thu, 16 Sep 2004 22:12:07 +0000 (22:12 +0000)]
timeout/untimeout ==> callout_*
Use splsoftclock protection here to avoid a race as suggestion by Matt.
This seems superflous though and it could be better to just use atomic
inc/dec on proc_waiting.
Joerg Sonnenberger [Thu, 16 Sep 2004 21:55:03 +0000 (21:55 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Thu, 16 Sep 2004 20:50:00 +0000 (20:50 +0000)]
Don't include the PCI parts until the our system has involved to support
this.
Jeroen Ruigrok/asmodai [Thu, 16 Sep 2004 16:29:39 +0000 (16:29 +0000)]
Add comment markers to avoid the same stupid mistake as I made.
Joerg Sonnenberger [Thu, 16 Sep 2004 15:15:51 +0000 (15:15 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Thu, 16 Sep 2004 14:56:32 +0000 (14:56 +0000)]
Remove unused defines
Joerg Sonnenberger [Thu, 16 Sep 2004 13:40:23 +0000 (13:40 +0000)]
Don't include arpa/inet.h, which needs certain struct to be defined.
Just include machine/endian.h and define the prototypes here too.
Matthew Dillon [Thu, 16 Sep 2004 05:01:17 +0000 (05:01 +0000)]
timeout/untimeout ==> callout_*
Matthew Dillon [Thu, 16 Sep 2004 04:49:32 +0000 (04:49 +0000)]
timeout/untimeout ==> callout_*
Matthew Dillon [Thu, 16 Sep 2004 04:45:49 +0000 (04:45 +0000)]
timeout/untimeout ==> callout_*
Matthew Dillon [Thu, 16 Sep 2004 04:39:31 +0000 (04:39 +0000)]
timeout/untimeout ==> callout_*
Matthew Dillon [Thu, 16 Sep 2004 04:25:18 +0000 (04:25 +0000)]
Remove a redundant bzero (which also specified the wrong length in anycase
after the callout_handle->callout conversion).
Matthew Dillon [Thu, 16 Sep 2004 03:54:37 +0000 (03:54 +0000)]
timeout/untimeout ==> callout_*
Matthew Dillon [Thu, 16 Sep 2004 03:43:09 +0000 (03:43 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 20:38:36 +0000 (20:38 +0000)]
timeout/untimeout ==> callout_*, even though this is currently not used.
Joerg Sonnenberger [Wed, 15 Sep 2004 20:30:09 +0000 (20:30 +0000)]
Split DN_NEXT into a version with and without cast. For the left side usages,
cast the pointers to (struct mbuf *) instead.
Joerg Sonnenberger [Wed, 15 Sep 2004 20:23:22 +0000 (20:23 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 20:05:13 +0000 (20:05 +0000)]
Move the timer declaration a bit up. I don't know why GCC 3.4 works and
2.95 doesn't.
Joerg Sonnenberger [Wed, 15 Sep 2004 19:58:05 +0000 (19:58 +0000)]
- ISO C cleanup
- make functions and globals static, remove ttymsg
- use clnt_pcreateerror when dealing with rpc
- use getopt for consistency
- remove useless void casts
- error check unlink and warn if final close failed
- make pointer conversions explicit
- WARNS=6 clean
Mostly-submitted-by: Liam J. Foy <liamfoy@sepulcrum.org>
Joerg Sonnenberger [Wed, 15 Sep 2004 19:34:55 +0000 (19:34 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 19:33:36 +0000 (19:33 +0000)]
if_clone_event should take a struct if_clone *, not a struct ifnet *.
Joerg Sonnenberger [Wed, 15 Sep 2004 19:29:35 +0000 (19:29 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 17:58:18 +0000 (17:58 +0000)]
Replace the timeout based busy-loop with a DELAY(1000) based busy-loop.
Joerg Sonnenberger [Wed, 15 Sep 2004 16:54:21 +0000 (16:54 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 16:46:19 +0000 (16:46 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 16:33:09 +0000 (16:33 +0000)]
Don't use dev/acpia/* includes for the ACPI5 infrastructure.
Noticed-by: YONETANI Tomokazu <qhwt+dragonfly-bugs@les.ath.cx>
Joerg Sonnenberger [Wed, 15 Sep 2004 16:25:12 +0000 (16:25 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 16:11:52 +0000 (16:11 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 16:02:41 +0000 (16:02 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 15:40:54 +0000 (15:40 +0000)]
Remove unused consumer of timeout
Joerg Sonnenberger [Wed, 15 Sep 2004 15:32:00 +0000 (15:32 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 15:22:02 +0000 (15:22 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 15:04:31 +0000 (15:04 +0000)]
The prefered location of the byteorder functions is arpa/inet.h. This
are also provided from sys/param.h and netinet/in.h, for historic purpose
and standard compliance.
Change the prototypes to reflect the use of POSIX fixed types, GCC does
produce warnings otherwise.
Joerg Sonnenberger [Wed, 15 Sep 2004 15:00:50 +0000 (15:00 +0000)]
SUS3 specified that netinet/in.h provides ntohl and may provide all the
interfaces from arpa/inet.h. Therefore include the later in the !_KERNEL
case, a lot of Linux program depend on this.
Joerg Sonnenberger [Wed, 15 Sep 2004 14:31:22 +0000 (14:31 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 14:24:33 +0000 (14:24 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 13:54:42 +0000 (13:54 +0000)]
timeout/untimeout ==> callout_*
Matthew Dillon [Wed, 15 Sep 2004 05:55:48 +0000 (05:55 +0000)]
'vidcontrol show' was broken by the better vesa support commit. Fix it.
Submitted-by: "Deng XueFeng" <dsnofe@msn.com>
Matthew Dillon [Wed, 15 Sep 2004 03:21:03 +0000 (03:21 +0000)]
Don't complain when a cdevsw with non-zero refs is being removed if it still
has links to other mask/match sets. Add misc comments to the code.
Matthew Dillon [Wed, 15 Sep 2004 02:56:35 +0000 (02:56 +0000)]
Fix cdevsw_remove() warnings related to the removal of mass media (e.g.
usb memory sticks). disk_destroy() was not properly specifying the unit
number when destroying the cdevsw and raw device.
Joerg Sonnenberger [Wed, 15 Sep 2004 01:51:55 +0000 (01:51 +0000)]
timeout/untimeout ==> callout_*
Matthew Dillon [Wed, 15 Sep 2004 01:48:09 +0000 (01:48 +0000)]
Improve error reporting when the cdevsw code detects problems.
Joerg Sonnenberger [Wed, 15 Sep 2004 01:39:10 +0000 (01:39 +0000)]
Convert timeout ==> callout_*.
Note that ACPI doesn't support detach / unloading, therefore no
callout_stop is used.
Matthew Dillon [Wed, 15 Sep 2004 01:38:13 +0000 (01:38 +0000)]
When a umass storage device is unplugged there might be pending requests
which either fail or wind up in limbo. The state machine will attempt to
issue a BBB RESET, but since this does not occur on our bulk or interrupt
pipes simply aborting the pipes is not sufficient to ensure that all of our
xfer requests have been idled.
We must also wait for any in-progress RESET's to complete, which is
accomplished by testing sc->transfer_state. Otherwise we may wind up
freeing an active xfer request and blow up.
Joerg Sonnenberger [Wed, 15 Sep 2004 01:32:07 +0000 (01:32 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 01:24:48 +0000 (01:24 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 01:19:13 +0000 (01:19 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 01:12:08 +0000 (01:12 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 01:04:59 +0000 (01:04 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:55:37 +0000 (00:55 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:49:46 +0000 (00:49 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:46:00 +0000 (00:46 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:41:53 +0000 (00:41 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:36:09 +0000 (00:36 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:24:30 +0000 (00:24 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:21:09 +0000 (00:21 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:10:14 +0000 (00:10 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Wed, 15 Sep 2004 00:06:16 +0000 (00:06 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 23:57:00 +0000 (23:57 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 23:49:51 +0000 (23:49 +0000)]
Remove dead code which depends on timeout interface.
Matthew Dillon [Tue, 14 Sep 2004 23:48:27 +0000 (23:48 +0000)]
timeout/untimeout ==> callout_*
Matthew Dillon [Tue, 14 Sep 2004 23:29:44 +0000 (23:29 +0000)]
timeout/untimeout ==> callout_*
Matthew Dillon [Tue, 14 Sep 2004 23:17:34 +0000 (23:17 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 23:08:41 +0000 (23:08 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 23:04:38 +0000 (23:04 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 23:01:20 +0000 (23:01 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 22:54:16 +0000 (22:54 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 22:48:15 +0000 (22:48 +0000)]
Add axe(4).
Joerg Sonnenberger [Tue, 14 Sep 2004 22:44:46 +0000 (22:44 +0000)]
timeout/untimeout ==> callout_*
Joerg Sonnenberger [Tue, 14 Sep 2004 22:35:28 +0000 (22:35 +0000)]
timeout/untimeout ==> callout_*