git: taskqueue - Major overhaul
Alex Hornung
alexh at crater.dragonflybsd.org
Wed Sep 30 01:22:51 PDT 2009
commit 8619d09d62c9d1c47f3056da6f06808f032f8e1b
Author: Alex Hornung <ahornung at gmail.com>
Date: Wed Sep 30 08:14:45 2009 +0100
taskqueue - Major overhaul
* Move taskqueue from critical sections to fine-grained locking with
lockmgr for the list of taskqueues (could be changed to spinlocks) and
spinlock for the task queue in each taskqueue itself.
* Add a taskqueue_swi_mp which is for mpsafe tasks. Unlike taskqueue_swi
the mplock is not acquired when tasks are run.
* Add FreeBSD's taskqueue_start_threads and family, allowing for
per-taskqueue threads.
* Add FreeBSD's taskqueue_block and taskqueue unblock.
* Out of necessity add a register_swi_mp, which registers a swi marked
as MPSAFE.
Partially-Obtained-from: FreeBSD
Summary of changes:
sys/kern/kern_intr.c | 9 ++
sys/kern/subr_taskqueue.c | 257 ++++++++++++++++++++++++++++++++++++++-------
sys/sys/interrupt.h | 7 +-
sys/sys/taskqueue.h | 16 +++
4 files changed, 250 insertions(+), 39 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/8619d09d62c9d1c47f3056da6f06808f032f8e1b
--
DragonFly BSD source repository
More information about the Commits
mailing list