git: taskqueue - Major overhaul

Alex Hornung alexh at
Wed Sep 30 01:22:51 PDT 2009

commit 8619d09d62c9d1c47f3056da6f06808f032f8e1b
Author: Alex Hornung <ahornung at>
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(-)

DragonFly BSD source repository

More information about the Commits mailing list