1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-19 10:53:58 +00:00
freebsd/sys/kern
John Baldwin 34a9edafbc Improve the ktrace locking somewhat to reduce overhead:
- Depessimize userret() in kernels where KTRACE is enabled by doing an
  unlocked check of the per-process queue of pending events before
  acquiring any locks.  Previously ktr_userret() unconditionally acquired
  the global ktrace_sx lock on every return to userland for every thread,
  even if ktrace wasn't enabled for the thread.
- Optimize the locking in exit() to first perform an unlocked read of
  p_traceflag to see if ktrace is enabled and only acquire locks and
  teardown ktrace if the test succeeds.  Also, explicitly disable tracing
  before draining any pending events so the pending events actually get
  written out.  The unlocked read is safe because proc lock is acquired
  earlier after single-threading so p_traceflag can't change between then
  and this check (well, it can currently due to a bug in ktrace I will fix
  next, but that race existed prior to this change as well).

Reviewed by:	rwatson
2007-06-13 20:01:42 +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 Maintain the lock on the vnode for most of exec_elfN_imgact(). 2005-12-24 04:57:50 +00:00
imgact_shell.c
inflate.c Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
init_main.c Fix a bug caming from the committing a pre-merge version of the patch 2007-06-10 00:28:41 +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 rufetch and calcru sometimes should be called atomically together. 2007-06-09 21:48:44 +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 Since locking in kern/subr_prof.c is changed a bit, we need nomore of 2007-06-09 19:41:14 +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 Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +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 Conditionally acquire Giant when dropping a reference on the ktrace vnode 2007-06-13 19:41:47 +00:00
kern_exit.c Improve the ktrace locking somewhat to reduce overhead: 2007-06-13 20:01:42 +00:00
kern_fork.c - Move some common code out of sched_fork_exit() and back into fork_exit(). 2007-06-12 07:47:09 +00:00
kern_idle.c Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +00:00
kern_intr.c Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +00:00
kern_jail.c Fix jails and jail-friendly file systems handling: 2007-04-13 23:54:22 +00:00
kern_kse.c - Garbage collect unused concurrency functions. 2007-06-12 19:49:39 +00:00
kern_kthread.c Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +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 Improve the ktrace locking somewhat to reduce overhead: 2007-06-13 20:01:42 +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 Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +00:00
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 Propagate volatile qualifier to make gcc4.2 happy. 2007-06-09 18:09:37 +00:00
kern_ntptime.c Further system call comment cleanup: 2007-03-05 13:10:58 +00:00
kern_physio.c
kern_pmc.c Fix -Wundef. 2005-12-04 02:12:43 +00:00
kern_poll.c Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +00:00
kern_priv.c Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +00:00
kern_proc.c rufetch and calcru sometimes should be called atomically together. 2007-06-09 21:48:44 +00:00
kern_prot.c Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +00:00
kern_resource.c Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +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 Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +00:00
kern_sig.c - Add a missing PROC_SUNLOCK() in tdsignal() 2007-06-11 23:27:03 +00:00
kern_subr.c Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +00:00
kern_switch.c - Garbage collect unused concurrency functions. 2007-06-12 19:50:31 +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 Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +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 unused variable from create_thread(). 2007-06-07 19:45:19 +00:00
kern_thread.c - Garbage collect unused concurrency functions. 2007-06-12 19:49:39 +00:00
kern_time.c rufetch and calcru sometimes should be called atomically together. 2007-06-09 21:48:44 +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 Backout experimental adaptive-spin umtx code. 2007-06-06 07:35:08 +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 Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00: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 - Move some common code out of sched_fork_exit() and back into fork_exit(). 2007-06-12 07:47:09 +00:00
sched_ule.c - Move some common code out of sched_fork_exit() and back into fork_exit(). 2007-06-12 07:47:09 +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 Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +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 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 Instead of doing comparisons using the pcpu area to see if 2007-03-08 06:44:34 +00:00
subr_prof.c Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +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 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 - Include opt_sched.h for SCHED_STATS. 2007-06-12 23:27:31 +00:00
subr_smp.c Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +00:00
subr_stack.c Correct typos 2006-05-28 22:15:28 +00:00
subr_taskqueue.c Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +00:00
subr_trap.c - Include opt_sched.h for SCHED_STATS. 2007-06-12 23:27:31 +00:00
subr_turnstile.c - Include opt_sched.h for SCHED_STATS. 2007-06-12 23:27:31 +00:00
subr_unit.c
subr_witness.c Update 802.11 wireless support: 2007-06-11 03:36:55 +00:00
sys_generic.c Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +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 Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +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 Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +00:00
sysv_msg.c Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +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 Re-acquire the PROC_SLOCK before calling calcru(), and release it after, 2007-06-11 21:05:41 +00:00
uipc_accf.c
uipc_cow.c Previously, nothing prevented the page that was returned by pmap_extract() 2005-10-23 07:41:56 +00:00
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 Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +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 Remove unused variable. 2007-06-10 01:50:05 +00:00
vfs_bio.c Work around an integer overflow in expression `3 * maxbufspace / 4', 2007-06-09 23:41:14 +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 Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +00:00
vfs_subr.c Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +00:00
vfs_syscalls.c Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +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