freebsd-dev/sys/kern
Scott Long 9df1a6dd61 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
2006-01-10 06:31:12 +00:00
..
bus_if.m
clock_if.m
cpufreq_if.m
device_if.m
genassym.sh
imgact_aout.c Maintain the lock on the vnode for most of exec_elfN_imgact(). 2005-12-24 04:57:50 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Fix breakage introduced in the previous commit. 2005-12-26 22:32:52 +00:00
imgact_gzip.c Maintain the lock on the vnode for most of exec_elfN_imgact(). 2005-12-24 04:57:50 +00:00
imgact_shell.c Fix a panic which could occur parsing #!-lines in a shell-script. If the 2005-06-19 02:21:03 +00:00
inflate.c Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
init_main.c Moderate rewrite of kernel ktrace code to attempt to generally improve 2005-11-13 13:27:44 +00:00
init_sysent.c Regenerate sysent with new abort2 system call. 2005-12-23 11:58:42 +00:00
kern_acct.c Significant refactoring of the accounting code to improve locking and VFS 2005-11-12 10:45:13 +00:00
kern_acl.c Implement new world order in VFS locking for ACLs. This will remove the 2005-09-17 22:01:14 +00:00
kern_alq.c
kern_clock.c Tweak how the MD code calls the fooclock() methods some. Instead of 2005-12-22 22:16:09 +00:00
kern_condvar.c Contributions from XFS for FreeBSD project: 2005-12-12 00:02:22 +00:00
kern_conf.c Minor whitespace cleanup. 2006-01-04 17:40:54 +00:00
kern_context.c
kern_cpu.c make saved cpu level stackable. 2005-10-03 06:57:29 +00:00
kern_descrip.c Return EBADF rather than EINVAL for FWRITE failure as per POSIX. 2006-01-06 16:30:30 +00:00
kern_environment.c Reorder statements to avoid accessing unknown memory. 2005-09-26 14:14:55 +00:00
kern_event.c Add in kqueue support to LIO event notification and fix how it handled 2005-10-12 17:51:31 +00:00
kern_exec.c Remove unneeded calls to pmap_remove_all(). The given page is not mapped. 2005-12-11 22:06:57 +00:00
kern_exit.c Regenerate sysent with new abort2 system call. 2005-12-23 11:58:42 +00:00
kern_fork.c Moderate rewrite of kernel ktrace code to attempt to generally improve 2005-11-13 13:27:44 +00:00
kern_idle.c
kern_intr.c Add a swi_remove() function to teardown software interrupt handlers. For 2005-10-26 15:51:05 +00:00
kern_jail.c Push Giant down in jails. Pass the MPSAFE flag to NDINIT, and keep track 2005-09-28 00:30:56 +00:00
kern_kse.c Cleanup some signal interfaces. Now the tdsignal function accepts 2005-11-03 04:49:16 +00:00
kern_kthread.c
kern_ktr.c - Add curthread to the state that ktr is saving. The extra information is 2005-06-10 23:21:29 +00:00
kern_ktrace.c In ktr_getrequest(), acquire ktrace_mtx earlier -- while the race 2005-11-14 19:30:09 +00:00
kern_linker.c Fix a bug in the kernel module runtime linker that made it impossible 2005-10-19 20:40:30 +00:00
kern_lock.c - Remove and unused include. 2005-12-23 21:32:40 +00:00
kern_lockf.c
kern_mac.c Standard Giant push down operations for the Mandatory Access Control (MAC) 2005-10-04 14:32:58 +00:00
kern_malloc.c Improve memguard a bit: 2005-12-30 11:45:07 +00:00
kern_mbuf.c Hide the 4k mbuf clusters if the normal clusters are defined to be 2005-12-10 15:21:04 +00:00
kern_mib.c mp_ncpus is always (properly) initialized, even on UP kernels, so just use it. 2005-08-21 18:03:31 +00:00
kern_module.c
kern_mtxpool.c
kern_mutex.c If destroying a spinlock, make sure that it is exited properly. 2006-01-08 00:18:34 +00:00
kern_ntptime.c
kern_physio.c
kern_pmc.c Fix -Wundef. 2005-12-04 02:12:43 +00:00
kern_poll.c - Don't pollute opt_global.h with DEVICE_POLLING and introduce 2005-10-05 10:09:17 +00:00
kern_proc.c Add code to report zombie state. 2005-12-29 13:00:42 +00:00
kern_prot.c Use the refcount API to manage the reference count for user credentials 2005-09-27 18:09:42 +00:00
kern_resource.c Calling setrlimit from 32bit apps could potentially increase certain 2005-11-02 21:18:07 +00:00
kern_sema.c
kern_shutdown.c Don't pretend to be thread0 when calling sync(). 2005-09-22 15:34:15 +00:00
kern_sig.c Avoid kernel panic when attaching a process which may not be stopped 2005-12-24 02:59:29 +00:00
kern_subr.c
kern_switch.c Trim trailing whitespace. 2005-12-28 17:13:31 +00:00
kern_sx.c Trim another pointer from struct lock_object (and thus from struct mtx and 2006-01-06 18:07:32 +00:00
kern_synch.c patch(1) and I aren't friends today. Axe a duplicate copy of 2005-12-29 21:15:32 +00:00
kern_syscalls.c
kern_sysctl.c Drop in a WITNESS_WARN into SYSCTL_IN to make sure that we are 2005-08-08 21:06:42 +00:00
kern_tc.c Start time_uptime with 1 instead of 0. 2005-09-19 22:16:31 +00:00
kern_thr.c Add a new feature to thr_kill, if thread ID argument is -1, send 2006-01-07 03:15:21 +00:00
kern_thread.c Now SIGCHLD is always queued. 2005-12-09 02:27:55 +00:00
kern_time.c Fix compiling warning on 64 bits system. 2005-12-09 13:16:48 +00:00
kern_timeout.c Oops, missed adding the required include. 2005-09-15 20:20:36 +00:00
kern_umtx.c do umtx_wake at userland thread exit address, so that others userland 2005-10-26 06:55:46 +00:00
kern_uuid.c Add parse_uuid() that creates a binary representation of an UUID from 2005-10-07 13:37:10 +00:00
kern_xxx.c
ksched.c
link_elf_obj.c Make our ELF64 type definitions match standards. In particular this 2005-12-18 04:52:37 +00:00
link_elf.c Make our ELF64 type definitions match standards. In particular this 2005-12-18 04:52:37 +00:00
linker_if.m
Make.tags.inc
Makefile Add a 'sysent' target that depends on the various files built from 2005-07-13 20:50:17 +00:00
makesyscalls.sh
md4c.c
md5c.c
p1003_1b.c
posix4_mib.c
sched_4bsd.c Move HWPMC_HOOKS into its own opt_hwpmc_hooks.h file. It doesn't merit 2005-06-24 00:16:57 +00:00
sched_ule.c Use variable i instead of variable cpus as an index to get correct kseq. 2005-12-27 12:02:03 +00:00
subr_acl_posix1e.c Implement new world order in VFS locking for ACLs. This will remove the 2005-09-17 22:01:14 +00:00
subr_autoconf.c
subr_blist.c
subr_bus.c When data passed into devctl_notify is NULL, don't print (null). Instead 2005-10-04 22:25:14 +00:00
subr_clist.c
subr_clock.c
subr_devstat.c
subr_disk.c - Fix insertions of bios which represent data earlier than anything else 2005-06-15 23:32:07 +00:00
subr_eventhandler.c
subr_hints.c The resource_xxx routines in subr_hints.c are called before and after the 2005-07-31 10:46:55 +00:00
subr_kdb.c Add stoppcbs[] arrays on Alpha and sparc64 and have each CPU save its 2005-11-03 21:08:20 +00:00
subr_kobj.c Increment kobj_lookup_misses on a miss rather than decrementing it. 2005-12-29 18:00:42 +00:00
subr_log.c
subr_mbpool.c
subr_mchain.c Change API of mb_copy_t in libmchain so that netsmb can handle 2005-07-29 13:22:37 +00:00
subr_module.c
subr_msgbuf.c
subr_param.c Partially revert revision 1.66, which contained a change that did not 2005-10-14 19:15:10 +00:00
subr_pcpu.c Fix 'show allpcpu' ddb command on non-x86. CPU IDs are in the range 0 .. 2005-11-03 21:06:29 +00:00
subr_power.c General consensus is that it would be even better to run this in a 2005-11-09 16:22:56 +00:00
subr_prf.c Acquire Giant in uprintf() and tprintf() rather than asserting it. In 2005-09-26 08:02:24 +00:00
subr_prof.c Change the addupc_*() functions to use the uintfptr_t type for pc rather 2005-12-16 22:08:32 +00:00
subr_rman.c Prefer NULL to 0. 2005-11-17 08:56:21 +00:00
subr_rtc.c
subr_sbuf.c Make sbuf_copyin() return the number of bytes copied on success. 2005-12-23 11:49:53 +00:00
subr_scanf.c
subr_sleepqueue.c Clarify panic message, I parsed the old one 'trying to sleep while sleeping' 2005-11-09 07:28:52 +00:00
subr_smp.c Rename the KDB_STOP_NMI kernel option to STOP_NMI and make it apply to all 2005-10-24 21:04:19 +00:00
subr_stack.c Add 'depth' argument to CTRSTACK() macro, which allows to reduce number 2005-08-29 11:34:08 +00:00
subr_taskqueue.c Add functions and macros and refactor code to make it easier to manage 2006-01-10 06:31:12 +00:00
subr_trap.c Moderate rewrite of kernel ktrace code to attempt to generally improve 2005-11-13 13:27:44 +00:00
subr_turnstile.c Trim a couple of unneeded includes. 2005-09-29 19:13:52 +00:00
subr_unit.c
subr_witness.c Trim another pointer from struct lock_object (and thus from struct mtx and 2006-01-06 18:07:32 +00:00
sys_generic.c Return error from fget_write() rather than hardcoding EBADF now that 2006-01-06 16:34:22 +00:00
sys_pipe.c In pipe_write(): when uiomove() fails, do not spin on it forever. 2005-12-16 18:32:39 +00:00
sys_process.c Avoid kernel panic when attaching a process which may not be stopped 2005-12-24 02:59:29 +00:00
sys_socket.c
syscalls.c Regenerate sysent with new abort2 system call. 2005-12-23 11:58:42 +00:00
syscalls.master Add abort2() systemcall. 2005-12-23 11:54:11 +00:00
sysv_ipc.c
sysv_msg.c
sysv_sem.c
sysv_shm.c Re-order MAC and DAC checks in shmget() in order to give precedence to 2005-10-04 16:40:20 +00:00
tty_compat.c Make ttsetcompat() static 2005-10-16 20:40:40 +00:00
tty_conf.c
tty_cons.c
tty_pty.c Use ttyalloc() instead of ttymalloc() 2006-01-04 09:09:46 +00:00
tty_subr.c
tty_tty.c Merge the dev_clone and dev_clone_cred event handlers into a single 2005-08-08 19:55:32 +00:00
tty.c Deorbit ttymalloc() in preference for ttyalloc() 2006-01-04 09:59:07 +00:00
uipc_accf.c o setsockopt(2) cannot remove accept filter. [1] 2005-06-11 11:59:48 +00:00
uipc_cow.c Previously, nothing prevented the page that was returned by pmap_extract() 2005-10-23 07:41:56 +00:00
uipc_domain.c
uipc_mbuf2.c Define four constants, MBUF_{,MEM,CLUSTER,PACKET,TAG}_MEM_NAME, which 2005-07-17 14:04:03 +00:00
uipc_mbuf.c When using m_dup(9) to copy more than MHLEN bytes of data, don't create an 2005-12-14 23:34:26 +00:00
uipc_mqueue.c Replace selwakeuppri with selwakeup, let scheduler figure out 2005-12-16 15:01:16 +00:00
uipc_proto.c Use sparse initializers for "struct domain" and "struct protosw", 2005-11-09 13:29:16 +00:00
uipc_sem.c Const-qualify ksem_timedwait's parameter abstime as it's only passed in. 2005-10-18 11:46:24 +00:00
uipc_sockbuf.c Fix a bug in the loop in sonewconn that makes room on the incomplete 2005-11-22 01:55:29 +00:00
uipc_socket2.c Fix a bug in the loop in sonewconn that makes room on the incomplete 2005-11-22 01:55:29 +00:00
uipc_socket.c Fix snderr() to not leak the socket buffer lock if an error occurs in 2005-11-29 23:07:14 +00:00
uipc_syscalls.c Reformat socket control messages on input/output for 32bit compatibility 2005-10-31 21:09:56 +00:00
uipc_usrreq.c Fix a bunch of SYSCTL_INT() that should have been SYSCTL_ULONG() to 2005-12-14 22:27:48 +00:00
vfs_acl.c Implement new world order in VFS locking for ACLs. This will remove the 2005-09-17 22:01:14 +00:00
vfs_aio.c Return error from fget_write() rather than hardcoding EBADF now that 2006-01-06 16:34:22 +00:00
vfs_bio.c MI changes: 2005-12-31 14:39:20 +00:00
vfs_cache.c - Fix a leaked reference to a vnode via v_dd. We rely on cache_purge() and 2005-06-17 01:05:13 +00:00
vfs_cluster.c Changes imported from XFS for FreeBSD project: 2005-12-07 03:39:08 +00:00
vfs_default.c Add marker vnodes to ensure that all vnodes associated with the mount point are 2006-01-09 20:42:19 +00:00
vfs_export.c Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
vfs_extattr.c Fix style bug. 2006-01-04 07:50:54 +00:00
vfs_hash.c Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
vfs_init.c
vfs_lookup.c Use correct VFS locking rather than unconditionally grabbing Giant around 2005-09-21 19:49:42 +00:00
vfs_mount.c Add marker vnodes to ensure that all vnodes associated with the mount point are 2006-01-09 20:42:19 +00:00
vfs_subr.c Add marker vnodes to ensure that all vnodes associated with the mount point are 2006-01-09 20:42:19 +00:00
vfs_syscalls.c Fix style bug. 2006-01-04 07:50:54 +00:00
vfs_vnops.c Eradicate caddr_t from the VFS API. 2005-12-14 00:49:52 +00:00
vnode_if.src Eradicate caddr_t from the VFS API. 2005-12-14 00:49:52 +00:00