<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/kern/subr_taskqueue.c, branch releng/10.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F10.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F10.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2014-02-17T15:32:08Z</updated>
<entry>
<title>MFC r258713,262062: add taskqueue_drain_all</title>
<updated>2014-02-17T15:32:08Z</updated>
<author>
<name>Andriy Gapon</name>
<email>avg@FreeBSD.org</email>
</author>
<published>2014-02-17T15:32:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a1ac86bb401fd75f1854e99627a0c2d24b0be2ec'/>
<id>urn:sha1:a1ac86bb401fd75f1854e99627a0c2d24b0be2ec</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MFC r258354: taskqueue_cancel: garbage collect a write-only variable</title>
<updated>2014-01-16T14:11:45Z</updated>
<author>
<name>Andriy Gapon</name>
<email>avg@FreeBSD.org</email>
</author>
<published>2014-01-16T14:11:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5c4aeb8d79d10af600d18ec4a8dabf25ea760ce3'/>
<id>urn:sha1:5c4aeb8d79d10af600d18ec4a8dabf25ea760ce3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MFprojects/camlock r254460:</title>
<updated>2013-08-24T14:41:49Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2013-08-24T14:41:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=596d33e92321d4c83812933b7be7e42209e3f6f7'/>
<id>urn:sha1:596d33e92321d4c83812933b7be7e42209e3f6f7</id>
<content type='text'>
Remove locking from taskqueue_member().  The list of threads is static
during the taskqueue life cycle, so there is no need to protect it,
taking quite congested lock several more times for each ZFS I/O.
</content>
</entry>
<entry>
<title>Extend taskqueue(9) to enable per-taskqueue callbacks.</title>
<updated>2013-03-23T15:11:53Z</updated>
<author>
<name>Will Andrews</name>
<email>will@FreeBSD.org</email>
</author>
<published>2013-03-23T15:11:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=fdbc71742bd6dd1d9f117a3144d33611b0509b43'/>
<id>urn:sha1:fdbc71742bd6dd1d9f117a3144d33611b0509b43</id>
<content type='text'>
The scope of these callbacks is primarily to support actions that affect the
taskqueue's thread environments.  They are entirely optional, and
consequently are introduced as a new API: taskqueue_set_callback().

This interface allows the caller to specify that a taskqueue requires a
callback and optional context pointer for a given callback type.

The callback types included in this commit can be used to register a
constructor and destructor for thread-local storage using osd(9).  This
allows a particular taskqueue to define that its threads require a specific
type of TLS, without the need for a specially-orchestrated task-based
mechanism for startup and shutdown in order to accomplish it.

Two callback types are supported at this point:

- TASKQUEUE_CALLBACK_TYPE_INIT, called by every thread when it starts, prior
  to processing any tasks.
- TASKQUEUE_CALLBACK_TYPE_SHUTDOWN, called by every thread when it exits,
  after it has processed its last task but before the taskqueue is
  reclaimed.

While I'm here:

- Add two new macros, TQ_ASSERT_LOCKED and TQ_ASSERT_UNLOCKED, and use them
  in appropriate locations.
- Fix taskqueue.9 to mention taskqueue_start_threads(), which is a required
  interface for all consumers of taskqueue(9).

Reviewed by:	kib (all), eadler (taskqueue.9), brd (taskqueue.9)
Approved by:	ken (mentor)
Sponsored by:	Spectra Logic
MFC after:	1 month
</content>
</entry>
<entry>
<title>Add a special meaning to the negative ticks argument for</title>
<updated>2012-11-20T15:33:48Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2012-11-20T15:33:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b7c8d2f2f5dddd09417a9b202865aa43b86ab4ef'/>
<id>urn:sha1:b7c8d2f2f5dddd09417a9b202865aa43b86ab4ef</id>
<content type='text'>
taskqueue_enqueue_timeout().  Do not rearm the callout if it is
already armed and the ticks is negative.  Otherwise rearm it to fire
in abs(ticks) ticks in the future.

The intended use is to call taskqueue_enqueue_timeout() for the given
timeout_task with the same negative ticks argument.  As result, the
task is scheduled to execute not further than abs(ticks) ticks in
future, and the consequent enqueues are coalesced until the already
scheduled task is finished.

Reviewed by:	rwatson
Tested by:	Markus Gebert &lt;markus.gebert@hostpoint.ch&gt;
MFC after:	2 weeks
</content>
</entry>
<entry>
<title>Shorten the name of the fast SWI taskqueue to "fast taskq" so that</title>
<updated>2012-08-28T13:35:37Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2012-08-28T13:35:37Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=10f0ab393363c31969d171925d6debc86be74bd2'/>
<id>urn:sha1:10f0ab393363c31969d171925d6debc86be74bd2</id>
<content type='text'>
it fits.

Reported by:	lev
MFC after:	1 week
</content>
</entry>
<entry>
<title>Ensure that ta_pending doesn't overflow u_short by capping its value at USHRT_MAX.</title>
<updated>2011-09-15T08:42:06Z</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2011-09-15T08:42:06Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d2849f27bc03b66f81f31aa571c8db997bad8fcb'/>
<id>urn:sha1:d2849f27bc03b66f81f31aa571c8db997bad8fcb</id>
<content type='text'>
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 &lt;lacombar@gmail.com&gt;
Submitted by:	Ryan Stone &lt;rysto32@gmail.com&gt;
Reviewed by:	jhb
Approved by:	re (kib)
MFC after:	1 day
</content>
</entry>
<entry>
<title>Implement the delayed task execution extension to the taskqueue</title>
<updated>2011-04-26T11:39:56Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2011-04-26T11:39:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b2ad91f26baf6b73bb0072ab184ed34f33f04fcb'/>
<id>urn:sha1:b2ad91f26baf6b73bb0072ab184ed34f33f04fcb</id>
<content type='text'>
mechanism. The caller may specify a timeout in ticks after which the
task will be scheduled.

Sponsored by:	The FreeBSD Foundation
Reviewed by:	jeff, jhb
MFC after:	1 month
</content>
</entry>
<entry>
<title>taskqueue: drop unused tq_name field</title>
<updated>2010-11-23T14:30:22Z</updated>
<author>
<name>Andriy Gapon</name>
<email>avg@FreeBSD.org</email>
</author>
<published>2010-11-23T14:30:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=706b0d31bb5f6594c4c7a3aa6742d5f5df4c04b3'/>
<id>urn:sha1:706b0d31bb5f6594c4c7a3aa6742d5f5df4c04b3</id>
<content type='text'>
tq_name was used write-only and besides it was just a pointer, so it
could point to some garbage in a temporary buffer that's gone.
This change shouldn't change KPI/KBI as struct taskqueue is private to
subr_taskqueue.c.
If we find a need for tq_name it can be resurrected at any moment.
taskqueue_create() interface is preserved for this purpose.

Suggested by:	jhb
MFC after:	10 days
</content>
</entry>
<entry>
<title>Use macros rather than inline functions to lock and unlock mutexes, so that</title>
<updated>2010-11-08T22:12:25Z</updated>
<author>
<name>Juli Mallett</name>
<email>jmallett@FreeBSD.org</email>
</author>
<published>2010-11-08T22:12:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b79b28b69d1a289f861e72edf883ed8a1391ce9c'/>
<id>urn:sha1:b79b28b69d1a289f861e72edf883ed8a1391ce9c</id>
<content type='text'>
line number information is preserved in witness.

Reviewed by:	jhb
</content>
</entry>
</feed>
