#
95ee2897 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
4d846d26 |
|
10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
|
#
b6f87b78 |
|
17-May-2022 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
LinuxKPI: Implement kthread_worker related functions Kthread worker is a single thread workqueue which can be used in cases where specific kthread association is necessary, for example, when it should have RT priority or be assigned to certain cgroup. This change implements Linux v4.9 interface which mostly hides kthread internals from users thus allowing to use ordinary taskqueue(9) KPI. As kthread worker prohibits enqueueing of already pending or canceling tasks some minimal changes to taskqueue(9) were done. taskqueue_enqueue_flags() was added to taskqueue KPI which accepts extra flags parameter. It contains one or more of the following flags: TASKQUEUE_FAIL_IF_PENDING - taskqueue_enqueue_flags() fails if the task is already scheduled to execution. EEXIST is returned and the ta_pending counter value remains unchanged. TASKQUEUE_FAIL_IF_CANCELING - taskqueue_enqueue_flags() fails if the task is in the canceling state and ECANCELED is returned. Required by: drm-kmod 5.10 MFC after: 1 week Reviewed by: hselasky, Pau Amma (docs) Differential Revision: https://reviews.freebsd.org/D35051
|
#
27f09959 |
|
24-May-2021 |
Colin Percival <cperciva@FreeBSD.org> |
taskqueue: Add missing comma to TASKQUEUE_FAST_DEFINE_THREAD Add missing comma to TASKQUEUE_FAST_DEFINE_THREAD arguments to prevent compilation errors. Submitted by: ashafer_badland.io MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D30449
|
#
47602aa4 |
|
11-Feb-2020 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Remove assertion from TASK_INIT() macro, since some users of sys/taskqueue.h may not have includes that define MPASS. It was useful during testing of r357771, but can be omitted now. An invalid value of priority will yield only in potential priority inversion, not a crash. This fixes compilation of ports/x11/nvidia-driver.
|
#
4426b2e6 |
|
11-Feb-2020 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Add flag to struct task to mark the task as requiring network epoch. When processing a taskqueue and a task has associated epoch, then enter for duration of the task. If consecutive tasks belong to the same epoch, batch them. Now we are talking about the network epoch only. Shrink the ta_priority size to 8-bits. No current consumers use a priority that won't fit into 8 bits. Also complexity of taskqueue_enqueue() is a square of maximum value of priority, so we unlikely ever want to go over UCHAR_MAX here. Reviewed by: hselasky Differential Revision: https://reviews.freebsd.org/D23518
|
#
5fdc2c04 |
|
17-Oct-2019 |
Andriy Gapon <avg@FreeBSD.org> |
provide a way to assign taskqueue threads to a kernel process This can be used to group all threads belonging to a single logical entity under a common kernel process. I am planning to use the new interface for ZFS threads. MFC after: 4 weeks
|
#
bb58b5d6 |
|
21-Nov-2018 |
Mark Johnston <markj@FreeBSD.org> |
Add a taskqueue_quiesce(9) KPI. This is similar to taskqueue_drain_all(9) but will wait for the queue to become idle before returning instead of only waiting for already-enqueued tasks to finish. This will be used in the opensolaris compat layer. PR: 227784 Reviewed by: cem MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D17975
|
#
c4e20cad |
|
27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/sys: further adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
|
#
fe0593d7 |
|
16-Aug-2017 |
Conrad Meyer <cem@FreeBSD.org> |
Add SI_SUB_TASKQ after SI_SUB_INTR and move taskqueue initialization there for EARLY_AP_STARTUP This fixes a regression accidentally introduced in r322588, due to an interaction with EARLY_AP_STARTUP. Reviewed by: bdrewery@, jhb@ Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D12053
|
#
f37b7fc2 |
|
30-Jul-2017 |
Ian Lepore <ian@FreeBSD.org> |
Add taskqueue_enqueue_timeout_sbt(), because sometimes you want more control over the scheduling precision than 'ticks' can offer, and because sometimes you're already working with sbintime_t units and it's dumb to convert them to ticks just so they can get converted back to sbintime_t under the hood.
|
#
403f4a31 |
|
01-Mar-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Implement taskqueue_poll_is_busy() for use by the LinuxKPI. Refer to comment above function for a detailed description. Discussed with: kib @ MFC after: 1 week Sponsored by: Mellanox Technologies
|
#
1d64db52 |
|
15-Jan-2017 |
Conrad Meyer <cem@FreeBSD.org> |
Fix a variety of cosmetic typos and misspellings No functional change. PR: 216096, 216097, 216098, 216101, 216102, 216106, 216109, 216110 Reported by: Bulat <bltsrc at mail.ru> Sponsored by: Dell EMC Isilon
|
#
23ac9029 |
|
12-Aug-2016 |
Stephen Hurd <shurd@FreeBSD.org> |
Update iflib to support more NIC designs - Move group task queue into kern/subr_gtaskqueue.c - Change intr_enable to return an int so it can be detected if it's not implemented - Allow different TX/RX queues per set to be different sizes - Don't split up TX mbufs before transmit - Allow a completion queue for TX as well as RX - Pass the RX budget to isc_rxd_available() to allow an earlier return and avoid multiple calls Submitted by: shurd Reviewed by: gallatin Approved by: scottl Differential Revision: https://reviews.freebsd.org/D7393
|
#
91970834 |
|
27-May-2016 |
John Baldwin <jhb@FreeBSD.org> |
Fix taskqueue groups to work with EARLY_AP_STARTUP. In the EARLY_AP_STARTUP case the APs are already running when a taskqgroup is created, so adjust the group at the same time it is created. Sponsored by: Netflix
|
#
7107bed0 |
|
21-May-2016 |
Andriy Gapon <avg@FreeBSD.org> |
fix loss of taskqueue wakeups (introduced in r300113) Submitted by: kmacy Tested by: dchagin
|
#
7e52504f |
|
19-May-2016 |
Scott Long <scottl@FreeBSD.org> |
Adjust the creation of tq_name so it can be freed correctly Reviewed by: jhb, allanjude Differential Revision: D6454
|
#
6db88023 |
|
19-May-2016 |
Alexander Motin <mav@FreeBSD.org> |
Add ta_flags initialization in old macros missed in 300113. Depending on uninitialized memory content it could cause loss of wakeup() call in taskqueue_run_locked().
|
#
4c7070db |
|
17-May-2016 |
Scott Long <scottl@FreeBSD.org> |
Import the 'iflib' API library for network drivers. From the author: "iflib is a library to eliminate the need for frequently duplicated device independent logic propagated (poorly) across many network drivers." Participation is purely optional. The IFLIB kernel config option is provided for drivers that want to transition between legacy and iflib modes of operation. ixl and ixgbe driver conversions will be committed shortly. We hope to see participation from the Broadcom and maybe Chelsio drivers in the near future. Submitted by: mmacy@nextbsd.org Reviewed by: gallatin Differential Revision: D5211
|
#
cbc4d2db |
|
01-Mar-2016 |
John Baldwin <jhb@FreeBSD.org> |
Remove taskqueue_enqueue_fast(). taskqueue_enqueue() was changed to support both fast and non-fast taskqueues 10 years ago in r154167. It has been a compat shim ever since. It's time for the compat shim to go. Submitted by: Howard Su <howard0su@gmail.com> Reviewed by: sephe Differential Revision: https://reviews.freebsd.org/D5131
|
#
75493a82 |
|
25-Feb-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
Remove taskqueue_start_threads_pinned(); there's noa generic cpuset version of this. Sponsored by: Norse Corp, Inc.
|
#
bfa102ca |
|
16-Feb-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
Implement taskqueue_start_threads_cpuset(). This is a more generic version of taskqueue_start_threads_pinned() which only supports a single cpuid. This originally came from John Baldwin <jhb@> who implemented it as part of a push towards NUMA awareness in drivers. I started implementing something similar for RSS and NUMA, then found he already did it. I'd like to axe taskqueue_start_threads_pinned() so it doesn't become part of a longer-term API. (Read: hps@ wants to MFC things, and if I don't do this soon, he'll MFC what's here. :-) I have a follow-up commit which converts the intel drivers over to using the cpuset version of this function, so we can eventually nuke the the pinned version. Tested: * igb, ixgbe Obtained from: jhbbsd
|
#
5a6f0eee |
|
24-May-2014 |
Adrian Chadd <adrian@FreeBSD.org> |
Add a new taskqueue setup method that takes a cpuid to pin the taskqueue worker thread(s) to. For now it isn't a taskqueue/taskthread error to fail to pin to the given cpuid. Thanks to rpaulo@, kib@ and jhb@ for feedback. Tested: * igb(4), with local RSS patches to pin taskqueues. TODO: * ask the doc team for help in documenting the new API call. * add a taskqueue_start_threads_cpuset() method which takes a cpuset_t - but this may require a bunch of surgery to bring cpuset_t into scope.
|
#
73f82099 |
|
28-Nov-2013 |
Andriy Gapon <avg@FreeBSD.org> |
add taskqueue_drain_all This API has semantics similar to that of taskqueue_drain but acts on all tasks that might be queued or running on a taskqueue. A caller must ensure that no new tasks are being enqueued otherwise this call would be totally meaningless. For example, if the tasks are enqueued by an interrupt filter then its interrupt must be disabled. MFC after: 10 days
|
#
ed3c8ba2 |
|
18-Oct-2013 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Revert r256587. Requested by: zec
|
#
348298b1 |
|
15-Oct-2013 |
Gleb Smirnoff <glebius@FreeBSD.org> |
For VIMAGE kernels store vnet in the struct task, and set vnet context during task processing. Reported & tested by: mm
|
#
fdbc7174 |
|
23-Mar-2013 |
Will Andrews <will@FreeBSD.org> |
Extend taskqueue(9) to enable per-taskqueue callbacks. 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
|
#
a7f5f794 |
|
19-Dec-2011 |
John Baldwin <jhb@FreeBSD.org> |
Add a TASK_INITIALIZER() macro that can be used to statically initialize a task structure. Reviewed by: gj MFC after: 2 weeks
|
#
b2ad91f2 |
|
26-Apr-2011 |
Konstantin Belousov <kib@FreeBSD.org> |
Implement the delayed task execution extension to the taskqueue 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
|
#
5e86ca00 |
|
04-Feb-2011 |
John Baldwin <jhb@FreeBSD.org> |
Use M_WAITOK rather than M_NOWAIT when creating taskqueues via the TASKQUEUE_DEFINE macros. All the places that use these macros to create taskqueues assume that the operation succeeds. MFC after: 1 week
|
#
f46276a9 |
|
08-Nov-2010 |
Matthew D Fleming <mdf@FreeBSD.org> |
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
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
bf73d4d2 |
|
13-Oct-2010 |
Matthew D Fleming <mdf@FreeBSD.org> |
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
|
#
a92f0ee8 |
|
12-Oct-2010 |
Matthew D Fleming <mdf@FreeBSD.org> |
Re-expose and briefly document taskqueue_run(9). The function is used in at least one 3rd party driver. Requested by: jhb
|
#
242ed5d9 |
|
22-Jul-2010 |
Matthew D Fleming <mdf@FreeBSD.org> |
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)
|
#
6e86cdb8 |
|
28-May-2010 |
Zachary Loafman <zml@FreeBSD.org> |
Revert r207439 and solve the problem differently. The task handler ta_func may free the task structure, so no references to its members are valid after the handler has been called. Using a per-queue member and having waits longer than strictly necessary was suggested by jhb. Submitted by: Matthew Fleming <matthew.fleming@isilon.com> Reviewed by: zml, jhb
|
#
1dac2224 |
|
30-Apr-2010 |
Zachary Loafman <zml@FreeBSD.org> |
Handle taskqueue_drain(9) correctly on a threaded taskqueue: taskqueue_drain(9) will not correctly detect whether a task is currently running. The check is against a field in the taskqueue struct, but for a threaded queue with more than one thread, multiple threads can simultaneously be running a task, thus stomping over the tq_running field. Submitted by: Matthew Fleming <matthew.fleming@isilon.com> Reviewed by: jhb Approved by: dfr (mentor)
|
#
65536ad6 |
|
18-Aug-2009 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
MFC r196358: Remove unused taskqueue_find() function. Reviewed by: dfr Approved by: re (kib)
|
#
e477e4fe |
|
18-Aug-2009 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Remove unused taskqueue_find() function. Reviewed by: dfr Approved by: re (kib)
|
#
e43f1736 |
|
17-Aug-2009 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
MFC r196295: 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)
|
#
159ef108 |
|
17-Aug-2009 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
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)
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
0ffc57f5 |
|
18-Jul-2008 |
Kip Macy <kmacy@FreeBSD.org> |
revert changes accidentally included in last commit
|
#
4af83c8c |
|
18-Jul-2008 |
Kip Macy <kmacy@FreeBSD.org> |
import vendor fixes to cxgb
|
#
478cfc73 |
|
25-Mar-2008 |
Scott Long <scottl@FreeBSD.org> |
Implement taskqueue_block() and taskqueue_unblock(). These functions allow the owner of a queue to block and unblock execution of the tasks in the queue while allowing tasks to continue to be added queue. Combining this with taskqueue_drain() allows a queue to be safely disabled. The unblock function may run (or schedule to run) the queue when it is called, just as calling taskqueue_enqueue() would. Reviewed by: jhb, sam
|
#
237fdd78 |
|
16-Mar-2008 |
Robert Watson <rwatson@FreeBSD.org> |
In keeping with style(9)'s recommendations on macros, use a ';' after each SYSINIT() macro invocation. This makes a number of lightweight C parsers much happier with the FreeBSD kernel source, including cflow's prcc and lxr. MFC after: 1 month Discussed with: imp, rink
|
#
0f92108d |
|
13-Jan-2006 |
Scott Long <scottl@FreeBSD.org> |
Add the following to the taskqueue api: taskqueue_start_threads(struct taskqueue **, int count, int pri, const char *name, ...); This allows the creation of 1 or more threads that will service a single taskqueue. Also rework the taskqueue_create() API to remove the API change that was introduced a while back. Creating a taskqueue doesn't rely on the presence of a process structure, and the proc mechanics are much better encapsulated in taskqueue_start_threads(). Also clean up the taskqueue_terminate() and taskqueue_free() functions to safely drain pending tasks and remove all associated threads. The TASKQUEUE_DEFINE and TASKQUEUE_DEFINE_THREAD macros have been changed to use the new API, but drivers compiled against the old definitions will still work. Thus, recompiling drivers is not a strict requirement.
|
#
9df1a6dd |
|
09-Jan-2006 |
Scott Long <scottl@FreeBSD.org> |
Add functions and macros and refactor code to make it easier to manage fast taskqueues. The following have been added: TASKQUEUE_FAST_DEFINE() - create a global task queue. an arbitrary execution context. TASKQUEUE_FAST_DEFINE_THREAD() - create a global taskqueue that uses a dedicated kthread. taskqueue_create_fast() - create a local/private taskqueue. These are all complimentary of the standard taskqueue functions. They are primarily useful for fast interrupt handlers that can only use spinlock for synchronization. I personally think that the taskqueue API is starting to get too narrow and hairy, but fixing it will require a major redesign on the API. Such a redesign would be good but would break compatibility with FreeBSD 6.x, so it really isn't desirable at this time. Submitted by: sam
|
#
52bc746a |
|
30-Apr-2005 |
Sam Leffler <sam@FreeBSD.org> |
o enable shutdown of taskqueue threads; the thread servicing the queue checks a new entry in the taskqueue struct each time it wakes up to see if it should terminate o adjust TASKQUEUE_DEFINE_THREAD & co. to record the thread/proc identity for the shutdown rendezvous o replace wakeup after adding a task to a queue with wakeup_one; this helps queues where multiple threads are used to service tasks (e.g. acpi) o remove NULL check of tq_enqueue method; it should never be NULL Reviewed by: dfr, njl
|
#
f4581151 |
|
24-Apr-2005 |
Sam Leffler <sam@FreeBSD.org> |
o eliminate modification of task structures after their run to avoid modify-after-free races when the task structure is malloc'd o shrink task structure by removing ta_flags (no longer needed with avoid fix) and combining ta_pending and ta_priority Reviewed by: dwhite, dfr MFC after: 4 days
|
#
14889b42 |
|
04-Oct-2004 |
Warner Losh <imp@FreeBSD.org> |
Add taskqueue_drain. This waits for the specified task to finish, if running, or returns. The calling program is responsible for making sure that nothing new is enqueued. # man page coming soon.
|
#
227559d1 |
|
07-Aug-2004 |
John-Mark Gurney <jmg@FreeBSD.org> |
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.
|
#
b3059e09 |
|
23-Jan-2004 |
Robert Watson <rwatson@FreeBSD.org> |
Defer the vrele() on a jail's root vnode reference from prison_free() to a new prison_complete() task run by a task queue. This removes a requirement for grabbing Giant in crfree(). Embed the 'struct task' in 'struct prison' so that we don't have to allocate memory from prison_free() (which means we also defer the FREE()). With this change, I believe grabbing Giant from crfree() can now be removed, but need to check the uidinfo code paths. To avoid header pollution, move the definition of 'struct task' to _task.h, and recursively include from taskqueue.h and jail.h; much preferably to all files including jail.h picking up a requirement to include taskqueue.h. Bumped into by: sam Reviewed by: bde, tjr
|
#
f82c9e70 |
|
05-Sep-2003 |
Sam Leffler <sam@FreeBSD.org> |
"fast swi" taskqueue support. This is a taskqueue that uses spinlocks making it useful for dispatching swi tasks from fast interrupt handlers. Sponsered by: FreeBSD Foundation
|
#
cb32189e |
|
02-Sep-2003 |
Kenneth D. Merry <ken@FreeBSD.org> |
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
|
#
7874f606 |
|
25-Feb-2003 |
Scott Long <scottl@FreeBSD.org> |
Introduce a new taskqueue that runs completely free of Giant, and in turns runs its tasks free of Giant too. It is intended that as drivers become locked down, they will move out of the old, Giant-bound taskqueue and into this new one. The old taskqueue has been renamed to taskqueue_swi_giant, and the new one keeps the name taskqueue_swi.
|
#
5a994091 |
|
28-Oct-2001 |
John Baldwin <jhb@FreeBSD.org> |
Revert the reindentation of struct task's definition from rev 1.4. Requested by: bde
|
#
282873e2 |
|
26-Oct-2001 |
John Baldwin <jhb@FreeBSD.org> |
- Change the taskqueue locking to protect the necessary parts of a task while it is on a queue with the queue lock and remove the per-task locks. - Remove TASK_DESTROY now that it is no longer needed. - Go back to inlining TASK_INIT now that it is short again. Inspired by: dfr
|
#
1de1c550 |
|
26-Oct-2001 |
John Baldwin <jhb@FreeBSD.org> |
Add locking to taskqueues. There is one mutex per task, one mutex per queue, and a mutex to protect the global list of taskqueues. The only visible change is that a TASK_DESTROY() macro has been added to mirror the TASK_INIT() macro to destroy a task before it is free'd. Submitted by: Andrew Reiter <awr@watson.org>
|
#
5e49eb23 |
|
09-Jun-2000 |
Mike Smith <msmith@FreeBSD.org> |
taskqueue_swi is a pointer, not a struct. Fix a comment that misleadingly suggests you pass its address to taskqueue_enqueue, which leads to various kinds of unpleasant mischief.
|
#
d20743db |
|
30-May-2000 |
Doug Rabson <dfr@FreeBSD.org> |
Style fixes. Submitted by: bde
|
#
ca2e0534 |
|
28-May-2000 |
Doug Rabson <dfr@FreeBSD.org> |
Add taskqueue system for easy-to-use SWIs among other things. Reviewed by: arch
|