freebsd-dev/sys/kern
Jeff Roberson a54e85fdbf Commit 4/14 of sched_lock decomposition.
- Use thread_lock() rather than sched_lock for per-thread scheduling
   sychronization.
 - Use the per-process spinlock rather than the sched_lock for per-process
   scheduling synchronization.
 - Move some common code into thread_suspend_switch() to handle the
   mechanics of suspending a thread.  The locking here is incredibly
   convoluted and should be simplified.

Tested by:      kris, current@
Tested on:      i386, amd64, ULE, 4BSD, libthr, libkse, PREEMPTION, etc.
Discussed with: kris, attilio, kmacy, jhb, julian, bde (small parts each)
2007-06-04 23:52:24 +00:00
..
bus_if.m o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
clock_if.m
cpufreq_if.m
device_if.m
genassym.sh
imgact_aout.c Correct two vm object reference leaks in error cases. 2006-03-16 08:51:59 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Rework the support for ABIs to override resource limits (used by 32-bit 2007-05-14 22:40:04 +00:00
imgact_gzip.c
imgact_shell.c
inflate.c
init_main.c - Move rusage from being per-process in struct pstats to per-thread in 2007-06-01 01:12:45 +00:00
init_sysent.c This commits the remake in kern/ make sysent to get 2006-11-03 18:57:49 +00:00
kern_acct.c - Move rusage from being per-process in struct pstats to per-thread in 2007-06-01 01:12:45 +00:00
kern_alq.c Change the VOP_OPEN(), vn_open() vnode operation and d_fdopen() cdev operation 2007-06-01 14:33:11 +00:00
kern_clock.c - Move rusage from being per-process in struct pstats to per-thread in 2007-06-01 01:12:45 +00:00
kern_condvar.c Commit 2/14 of sched_lock decomposition. 2007-06-04 23:50:56 +00:00
kern_conf.c Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00
kern_context.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_cpu.c Add an interface for drivers to be notified of changes to CPU frequency. 2007-03-26 18:03:29 +00:00
kern_descrip.c Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00
kern_environment.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_event.c In kern_kevent(), unconditionally fdrop() fp once fget() has succeeded, 2007-05-28 17:15:05 +00:00
kern_exec.c Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00
kern_exit.c - Move rusage from being per-process in struct pstats to per-thread in 2007-06-01 01:12:45 +00:00
kern_fork.c - Move rusage from being per-process in struct pstats to per-thread in 2007-06-01 01:12:45 +00:00
kern_idle.c - Remove setrunqueue and replace it with direct calls to sched_add(). 2007-01-23 08:46:51 +00:00
kern_intr.c Rework the PCPU_* (MD) interface: 2007-06-04 21:38:48 +00:00
kern_jail.c Fix jails and jail-friendly file systems handling: 2007-04-13 23:54:22 +00:00
kern_kse.c Rename the 'mtx_object', 'rw_object', and 'sx_object' members of mutexes, 2007-03-21 21:20:51 +00:00
kern_kthread.c - Remove setrunqueue and replace it with direct calls to sched_add(). 2007-01-23 08:46:51 +00:00
kern_ktr.c Remove slightly oddly placed suser() call from the KTR/ALQ setup sysctl: 2006-09-09 16:09:01 +00:00
kern_ktrace.c Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00
kern_linker.c Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00
kern_lock.c Move lock_profile_object_{init,destroy}() into lock_{init,destroy}(). 2007-05-18 15:04:59 +00:00
kern_lockf.c
kern_malloc.c Revert VMCNT_* operations introduction. 2007-05-31 22:52:15 +00:00
kern_mbuf.c Despite several examples in the kernel, the third argument of 2007-06-04 18:25:08 +00:00
kern_mib.c Revert VMCNT_* operations introduction. 2007-05-31 22:52:15 +00:00
kern_module.c Remove 'MPSAFE' annotations from the comments above most system calls: all 2007-03-04 22:36:48 +00:00
kern_mtxpool.c Universally adopt most conventional spelling of acquire. 2007-05-27 20:50:23 +00:00
kern_mutex.c Commit 3/14 of sched_lock decomposition. 2007-06-04 23:51:44 +00:00
kern_ntptime.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_physio.c
kern_pmc.c
kern_poll.c Despite several examples in the kernel, the third argument of 2007-06-04 18:25:08 +00:00
kern_priv.c Add a new priv(9) kernel interface for checking the availability of 2006-11-06 13:37:19 +00:00
kern_proc.c - Move rusage from being per-process in struct pstats to per-thread in 2007-06-01 01:12:45 +00:00
kern_prot.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_resource.c - Move rusage from being per-process in struct pstats to per-thread in 2007-06-01 01:12:45 +00:00
kern_rwlock.c Commit 3/14 of sched_lock decomposition. 2007-06-04 23:51:44 +00:00
kern_sema.c
kern_shutdown.c Remove 'MPSAFE' annotations from the comments above most system calls: all 2007-03-04 22:36:48 +00:00
kern_sig.c Commit 4/14 of sched_lock decomposition. 2007-06-04 23:52:24 +00:00
kern_subr.c Removes useless (flags | ) KASSERT. The ^ one that actually 2007-01-16 11:40:55 +00:00
kern_switch.c Commit 1/14 of sched_lock decomposition. 2007-06-04 23:50:30 +00:00
kern_sx.c Add functions sx_xlock_sig() and sx_slock_sig(). 2007-05-31 09:14:48 +00:00
kern_synch.c Commit 2/14 of sched_lock decomposition. 2007-06-04 23:50:56 +00:00
kern_syscalls.c Make system call modules a bit more robust: 2006-08-01 16:32:20 +00:00
kern_sysctl.c Add a function for exporting 64 bit types. 2007-06-04 18:14:28 +00:00
kern_tc.c Despite several examples in the kernel, the third argument of 2007-06-04 18:25:08 +00:00
kern_thr.c - Remove setrunqueue and replace it with direct calls to sched_add(). 2007-01-23 08:46:51 +00:00
kern_thread.c Commit 4/14 of sched_lock decomposition. 2007-06-04 23:52:24 +00:00
kern_time.c Remove MAC Framework access control check entry points made redundant with 2007-04-22 15:31:22 +00:00
kern_timeout.c Make the TCP timer callout obtain Giant if the network stack is marked 2007-05-11 20:52:47 +00:00
kern_umtx.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_uuid.c Correct typo. 2007-04-23 12:53:00 +00:00
kern_xxx.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
ksched.c Threading cleanup.. part 2 of several. 2006-12-06 06:34:57 +00:00
link_elf_obj.c Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00
link_elf.c Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00
linker_if.m
Make.tags.inc Update entries for building tags. 2007-05-13 18:21:54 +00:00
Makefile Add support for the generated file systrace_args.c. 2006-08-05 19:25:14 +00:00
makesyscalls.sh Merge posix4/* into normal kernel hierarchy. 2006-11-11 16:26:58 +00:00
md4c.c
md5c.c Fix a panic on sparc64 related to inproper aligment - we cannot assume, 2006-03-30 18:45:50 +00:00
p1003_1b.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
posix4_mib.c Fix mispatch of includes list; allows my kernel to build successfully. 2006-11-12 03:34:03 +00:00
sched_4bsd.c Commit 1/14 of sched_lock decomposition. 2007-06-04 23:50:30 +00:00
sched_core.c Commit 1/14 of sched_lock decomposition. 2007-06-04 23:50:30 +00:00
sched_ule.c Commit 1/14 of sched_lock decomposition. 2007-06-04 23:50:30 +00:00
serdev_if.m MFp4: Add the ipend() method to the serdev I/F to allow umbrella 2006-04-23 22:12:39 +00:00
subr_acl_posix1e.c Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
subr_autoconf.c Add a mutex to protect the list of interrupt config hooks. We do assume 2006-07-19 18:53:56 +00:00
subr_blist.c
subr_bus.c fix comment typo 2007-05-23 17:28:21 +00:00
subr_clist.c
subr_clock.c Use utc_offset() where applicable, and hide the internals of it 2006-10-02 18:23:37 +00:00
subr_devstat.c
subr_disk.c Add a new I/O request - BIO_FLUSH, which basically tells providers below to 2006-10-31 21:11:21 +00:00
subr_eventhandler.c
subr_fattime.c Better naming of fattime conversion functions, they do convert to timespec 2006-10-24 10:27:23 +00:00
subr_firmware.c Cleanup and document the implementation of firmware(9) based on 2007-02-15 17:21:31 +00:00
subr_hints.c Use a sleep mutex instead of an sx lock for the kernel environment. This 2006-07-09 21:42:58 +00:00
subr_kdb.c Add a funny sysctl: debug.kdb.trap_code . 2006-06-18 12:27:59 +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_lock.c Revert some debugging KTRs that were added during development. 2007-06-03 18:24:31 +00:00
subr_log.c
subr_mbpool.c Add parens around *free in *free++ in mbp_count() so that mbp_count() 2007-05-27 17:38:36 +00:00
subr_mchain.c
subr_module.c
subr_msgbuf.c
subr_param.c
subr_pcpu.c
subr_power.c
subr_prf.c Instead of doing comparisons using the pcpu area to see if 2007-03-08 06:44:34 +00:00
subr_prof.c - Move clock synchronization into a seperate clock lock so the global 2007-05-20 22:11:50 +00:00
subr_rman.c Complete removal of restriction about overlaps to rman_manage_region: 2007-04-28 07:37:49 +00:00
subr_rtc.c Use utc_offset() where applicable, and hide the internals of it 2006-10-02 18:23:37 +00:00
subr_sbuf.c
subr_scanf.c
subr_sleepqueue.c Commit 2/14 of sched_lock decomposition. 2007-06-04 23:50:56 +00:00
subr_smp.c Instead of doing comparisons using the pcpu area to see if 2007-03-08 06:44:34 +00:00
subr_stack.c Correct typos 2006-05-28 22:15:28 +00:00
subr_taskqueue.c - Remove setrunqueue and replace it with direct calls to sched_add(). 2007-01-23 08:46:51 +00:00
subr_trap.c Do proper "locking" for missing vmmeters part. 2007-06-04 21:45:18 +00:00
subr_turnstile.c Commit 3/14 of sched_lock decomposition. 2007-06-04 23:51:44 +00:00
subr_unit.c
subr_witness.c Fix some problems introduced with the last descriptors tables locking 2007-05-29 18:55:41 +00:00
sys_generic.c Remove unneeded include files. 2007-05-01 06:35:54 +00:00
sys_pipe.c Remove amountpipes counter for pipes -- this replicates the function of 2007-05-27 17:33:10 +00:00
sys_process.c Remove 'MPSAFE' annotations from the comments above most system calls: all 2007-03-04 22:36:48 +00:00
sys_socket.c Move to ANSI C function headers. Re-wrap some comments. 2007-03-04 17:50:46 +00:00
syscalls.c This commits the remake in kern/ make sysent to get 2006-11-03 18:57:49 +00:00
syscalls.master Ok, here it is, we finally add SCTP to current. Note that this 2006-11-03 15:23:16 +00:00
systrace_args.c Ok, here it is, we finally add SCTP to current. Note that this 2006-11-03 15:23:16 +00:00
sysv_ipc.c Sync up PRIV_IPC_{ADMIN,READ,WRITE} priv checks in ipcperm() with 2007-02-20 00:06:59 +00:00
sysv_msg.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
sysv_sem.c Avoid manipulating semu_list outside of the scope of SEMUNDO_LOCK(). This 2007-03-26 17:41:14 +00:00
sysv_shm.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
tty_compat.c Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
tty_conf.c
tty_cons.c Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00
tty_pts.c Canonicalize copyrights in some files I hold copyrights on: 2007-01-08 17:49:59 +00:00
tty_pty.c Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
tty_subr.c
tty_tty.c Use ctty instead of just returning. ctty just has a simple open that 2006-09-27 16:41:15 +00:00
tty.c Back out rev. 1.266. The real cause for the recent panics has been fixed 2006-12-20 02:49:59 +00:00
uipc_accf.c
uipc_cow.c
uipc_debug.c sblock() implements a sleep lock by interlocking SB_WANT and SB_LOCK flags 2007-05-03 14:42:42 +00:00
uipc_domain.c Generally migrate to ANSI function headers, and remove 'register' use. 2007-05-16 20:41:08 +00:00
uipc_mbuf2.c Complete break-out of sys/sys/mac.h into sys/security/mac/mac_framework.h 2006-10-22 11:52:19 +00:00
uipc_mbuf.c Generally migrate to ANSI function headers, and remove 'register' use. 2007-05-16 20:41:08 +00:00
uipc_mqueue.c Remove duplicate includes. 2007-05-23 13:36:02 +00:00
uipc_sem.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
uipc_sockbuf.c Now that sx(9) locks support an interruptible lock acquire primitive, 2007-05-31 11:51:22 +00:00
uipc_socket.c Despite several examples in the kernel, the third argument of 2007-06-04 18:25:08 +00:00
uipc_syscalls.c In kern_sendfile() adjust byte accounting of the file sending loop to 2007-05-19 20:50:59 +00:00
uipc_usrreq.c Add DDB "show unpcb" command, allowing DDB to print out many pertinent 2007-05-29 12:36:00 +00:00
vfs_acl.c Replay minor system call comment cleanup applied to kern_acl.c in a race 2007-03-05 13:26:07 +00:00
vfs_aio.c - Move rusage from being per-process in struct pstats to per-thread in 2007-06-01 01:12:45 +00:00
vfs_bio.c - Move rusage from being per-process in struct pstats to per-thread in 2007-06-01 01:12:45 +00:00
vfs_cache.c To avoid a deadlock when handling .. directory during a lookup, we unlock 2007-05-25 22:23:38 +00:00
vfs_cluster.c - Move rusage from being per-process in struct pstats to per-thread in 2007-06-01 01:12:45 +00:00
vfs_default.c Since renaming of vop_lock to _vop_lock, pre- and post-condition 2007-05-18 13:02:13 +00:00
vfs_export.c Move vnode-to-file-handle translation from vfs_vptofh to vop_vptofh method. 2007-02-15 22:08:35 +00:00
vfs_extattr.c Update comments to reflect changes in the extattrctl() code. 2006-12-23 00:30:03 +00:00
vfs_hash.c Make insmntque() externally visibile and allow it to fail (e.g. during 2007-03-13 01:50:27 +00:00
vfs_init.c Remove VFS_VPTOFH entirely. API is already broken and it is good time to 2007-02-16 17:32:41 +00:00
vfs_lookup.c Universally adopt most conventional spelling of acquire. 2007-05-27 20:50:23 +00:00
vfs_mount.c Allow the dounmount() to proceed even for doomed coveredvp. 2007-04-26 08:56:56 +00:00
vfs_subr.c Revert VMCNT_* operations introduction. 2007-05-31 22:52:15 +00:00
vfs_syscalls.c Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00
vfs_vnops.c Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00
vnode_if.src Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00