History log of /freebsd-9.3-release/share/man/man9/taskqueue.9
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 267654 19-Jun-2014 gjb

Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 262064 17-Feb-2014 avg

MFC r258713,262062: add taskqueue_drain_all


# 243963 06-Dec-2012 kib

MFC r243845:
Document the interpretation of the negative value of ticks for
taskqueue_enqueue_timeout(9).

MFC r243863:
Fix typo.


# 237216 18-Jun-2012 eadler

MFC r233648:
Remove trailing whitespace per mdoc lint warning

Approved by: cperciva (implicit)


# 236235 29-May-2012 gjb

MFC r235693:

Typo and mdoc(7) style fixes.

PR: 168117


# 230012 12-Jan-2012 jhb

MFC 228715:
Add a TASK_INITIALIZER() macro that can be used to statically
initialize a task structure.


# 225736 22-Sep-2011 kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by: re (implicit)


# 225570 15-Sep-2011 adrian

Ensure that ta_pending doesn't overflow u_short by capping its value at USHRT_MAX.

If it overflows before the taskqueue can run, the task will be
re-added to the taskqueue and cause a loop in the task list.

Reported by: Arnaud Lacombe <lacombar@gmail.com>
Submitted by: Ryan Stone <rysto32@gmail.com>
Reviewed by: jhb
Approved by: re (kib)
MFC after: 1 day


# 224568 01-Aug-2011 kib

Fix markup.

Approved by: re (hrs)


# 221060 26-Apr-2011 kib

Document timeout_task.

While there, fix the type of the func argument of INIT_TASK macro,
and use the modern name of the analogous facility from Linux kernel.

Sponsored by: The FreeBSD Foundation
MFC after: 1 month


# 215011 08-Nov-2010 mdf

Add a taskqueue_cancel(9) to cancel a pending task without waiting for
it to run as taskqueue_drain(9) does.

Requested by: hselasky
Original code: jeff
Reviewed by: jhb
MFC after: 2 weeks


# 213813 13-Oct-2010 mdf

Use a safer mechanism for determining if a task is currently running,
that does not rely on the lifetime of pointers being the same. This also
restores the task KBI.

Suggested by: jhb
MFC after: 1 month


# 213739 12-Oct-2010 mdf

Re-expose and briefly document taskqueue_run(9). The function is used
in at least one 3rd party driver.

Requested by: jhb


# 210669 31-Jul-2010 joel

Spelling fixes.


# 210377 22-Jul-2010 mdf

Fix taskqueue_drain(9) to not have false negatives. For threaded
taskqueues, more than one task can be running simultaneously.

Also make taskqueue_run(9) static to the file, since there are no
consumers in the base kernel and the function signature needs to change
with this fix.

Remove mention of taskqueue_run(9) and taskqueue_run_fast(9) from the
taskqueue(9) man page.

Reviewed by: jhb
Approved by: zml (mentor)


# 196358 18-Aug-2009 pjd

Remove unused taskqueue_find() function.

Reviewed by: dfr
Approved by: re (kib)


# 196311 17-Aug-2009 pjd

Correct typo in the previous commit.

Noticed by: pluknet <pluknet@gmail.com>
Approved by: re (kib, implicit)


# 196295 17-Aug-2009 pjd

Remove OpenSolaris taskq port (it performs very poorly in our kernel) and
replace it with wrappers around our taskqueue(9).
To make it possible implement taskqueue_member() function which returns 1
if the given thread was created by the given taskqueue.

Approved by: re (kib)


# 179779 13-Jun-2008 gonzo

It's Friday the 13th, not the 10th and I can't travel in time. Yet.


# 179778 13-Jun-2008 gonzo

Add "fast" versions of macros and functions to taskqueue(9) API
description: TASKQUEUE_FAST_DEFINE(9), TASKQUEUE_FAST_DEFINE_THREAD(9),
taskqueue_create_fast(9). They deal with taskqueues intended for use
in fast interrupt handlers.

Approved by: cognet (mentor)
Reviewed by: keramida


# 179214 22-May-2008 gonzo

Clean out all mentions of struct proc* for it was removed from
taskqueue(9) API more then two years ago.

Approved by: cognet (mentor)


# 171315 09-Jul-2007 jmg

document the call to wakeup after a task has been run...

Approved by: re (hrs)
MFC after: 3 days


# 147647 28-Jun-2005 hmp

Use 'manual page' instead of 'man page' for consistency.

Approved by: re (hrs)


# 147398 15-Jun-2005 ru

Assorted markup fixes and minor wordsmithing.

Approved by: re


# 146412 19-May-2005 glebius

Document taskqueue_drain().


# 145740 01-May-2005 sam

update for recent api changes


# 145285 19-Apr-2005 jkoshy

Document taskqueue_run_fast(). Markup 'Giant' with ".Va".

Reviewed by: ru


# 145114 15-Apr-2005 jkoshy

Add a 'SEE ALSO' section.


# 140140 12-Jan-2005 ru

Scheduled mdoc(7) sweep.


# 136971 26-Oct-2004 bms

Correct a misspelling, 'task_fn' -> 'task_fn_t'.

Noticed by: sah at softcardsystems dot com
MFC after: 3 days


# 133305 08-Aug-2004 jmg

rearange some code that handles the thread taskqueue so that it is more
generic. Introduce a new define TASKQUEUE_DEFINE_THREAD that takes a
single arg, which is the name of the queue.

Document these changes.


# 131472 02-Jul-2004 ru

Removed trailing whitespace.


# 130582 16-Jun-2004 ru

Assorted markup, spelling, and grammar fixes.


# 124066 02-Jan-2004 scottl

Document taskqueue_enqueue_fast()


# 119709 03-Sep-2003 ken

Fix typo in the last commit.

Pointed out by: njl
MFC after: 3 days


# 119708 03-Sep-2003 ken

Move dynamic sysctl(8) variable creation for the cd(4) and da(4) drivers
out of cdregister() and daregister(), which are run from interrupt context.

The sysctl code does blocking mallocs (M_WAITOK), which causes problems
if malloc(9) actually needs to sleep.

The eventual fix for this issue will involve moving the CAM probe process
inside a kernel thread. For now, though, I have fixed the issue by moving
dynamic sysctl variable creation for these two drivers to a task queue
running in a kernel thread.

The existing task queues (taskqueue_swi and taskqueue_swi_giant) run in
software interrupt handlers, which wouldn't fix the problem at hand. So I
have created a new task queue, taskqueue_thread, that runs inside a kernel
thread. (It also runs outside of Giant -- clients must explicitly acquire
and release Giant in their taskqueue functions.)

scsi_cd.c: Remove sysctl variable creation code from cdregister(), and
move it to a new function, cdsysctlinit(). Queue
cdsysctlinit() to the taskqueue_thread taskqueue once we
have fully registered the cd(4) driver instance.

scsi_da.c: Remove sysctl variable creation code from daregister(), and
move it to move it to a new function, dasysctlinit().
Queue dasysctlinit() to the taskqueue_thread taskqueue once
we have fully registered the da(4) instance.

taskqueue.h: Declare the new taskqueue_thread taskqueue, update some
comments.

subr_taskqueue.c:
Create the new kernel thread taskqueue. This taskqueue
runs outside of Giant, so any functions queued to it would
need to explicitly acquire/release Giant if they need it.

cd.4: Update the cd(4) man page to talk about the minimum command
size sysctl/loader tunable. Also note that the changer
variables are available as loader tunables as well.

da.4: Update the da(4) man page to cover the retry_count,
default_timeout and minimum_cmd_size sysctl variables/loader
tunables. Remove references to /dev/r???, they aren't used
any longer.

cd.9: Update the cd(9) man page to describe the CD_Q_10_BYTE_ONLY
quirk.

taskqueue.9: Update the taskqueue(9) man page to describe the new thread
task queue, and the taskqueue_swi_giant queue.

MFC after: 3 days


# 92325 15-Mar-2002 ru

mdoc(7) police: Kill the (now extraneous) empty line. Previously,
.Bd erroneously defaulted to -compact mode in the SYNOPSIS section.


# 88509 26-Dec-2001 davidc

Update function definitions and required include files to reflect
the current state of the system.

Approved by: alfred


# 84306 01-Oct-2001 ru

mdoc(7) police: Use the new .In macro for #include statements.


# 79454 09-Jul-2001 dd

mdoc(7) police: remove extraneous .Pp before and/or after .Sh.


# 69052 22-Nov-2000 ru

mdoc(7) police: Er macro usage cleanup.


# 61049 28-May-2000 dfr

Add documentation for taskqueue apis.