freebsd-dev/sys/kern
Robert Watson 1a1238a112 Don't acquire Giant before calling closef() in close() (and elsewhere);
instead acquire it conditionally in closef() if it is required for
advisory locking.  This removes Giant from the close() path of sockets
and pipes (and any other objects that don't acquire Giant in their
fo_close path, such as kqueues).  Giant will still be acquired twice for
vnodes -- once for advisory lock teardown, and a second time in the
fo_close method.  Both Poul-Henning and I believe that the advisory lock
teardown code can be moved into the vn_closefile path shortly.

This trims a percent or two off the cost of most non-vnode close
operations on SMP, but has a fairly minimal impact on UP where the cost
of a single mutex operation is pretty low.
2004-11-28 14:37:17 +00:00
..
bus_if.m Minor formatting fixes for lines > 80 characters 2004-08-12 17:26:22 +00:00
clock_if.m
device_if.m Minor formatting fixes for lines > 80 characters 2004-08-12 17:26:22 +00:00
genassym.sh
imgact_aout.c Axe a.out core dump support. Neither older gdb binaries nor current 2004-11-27 06:46:59 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c On arm, set the default elf brand to FreeBSD, until the binutils do it for us. 2004-09-23 23:29:24 +00:00
imgact_gzip.c Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +00:00
imgact_shell.c Don't treat # as a comment in interpreter specification line. 2004-10-31 11:12:59 +00:00
inflate.c
init_main.c Don't include sys/user.h merely for its side-effect of recursively 2004-11-27 06:51:39 +00:00
init_sysent.c Regen. 2004-11-25 12:08:16 +00:00
kern_acct.c Rework how we store process times in the kernel such that we always store 2004-10-05 18:51:11 +00:00
kern_acl.c Rename suser_cred()'s PRISON_ROOT flag to SUSER_ALLOWJAIL. This is 2004-07-26 07:24:04 +00:00
kern_alq.c
kern_clock.c Rework how we store process times in the kernel such that we always store 2004-10-05 18:51:11 +00:00
kern_condvar.c Refine the turnstile and sleep queue interfaces just a bit: 2004-10-12 18:36:20 +00:00
kern_conf.c Get rid of the magic "stash" of cdev structures, we no longer call 2004-10-25 13:12:06 +00:00
kern_context.c
kern_descrip.c Don't acquire Giant before calling closef() in close() (and elsewhere); 2004-11-28 14:37:17 +00:00
kern_environment.c Retire TUNABLE_QUAD_*. 2004-11-08 18:22:22 +00:00
kern_event.c Move a FILEDESC_UNLOCK upwards to silence witness. 2004-11-16 14:41:31 +00:00
kern_exec.c Don't include sys/user.h merely for its side-effect of recursively 2004-11-27 06:51:39 +00:00
kern_exit.c Don't include sys/user.h merely for its side-effect of recursively 2004-11-27 06:51:39 +00:00
kern_fork.c Don't include sys/user.h merely for its side-effect of recursively 2004-11-27 06:51:39 +00:00
kern_idle.c Give the 4bsd scheduler the ability to wake up idle processors 2004-09-01 06:42:02 +00:00
kern_intr.c Don't bother exiting storming mode once a second to see if it has gone 2004-11-17 14:39:41 +00:00
kern_jail.c Add two missing includes and remove two uneeded. 2004-06-27 09:03:22 +00:00
kern_kse.c Remove local definitions of RANGEOF() and use __rangeof() instead. 2004-11-20 23:00:59 +00:00
kern_kthread.c Give setrunqueue() and sched_add() more of a clue as to 2004-09-01 02:11:28 +00:00
kern_ktr.c - Change the ddb paging "support" to use a variable (db_lines_per_page) to 2004-11-01 22:15:15 +00:00
kern_ktrace.c Rename suser_cred()'s PRISON_ROOT flag to SUSER_ALLOWJAIL. This is 2004-07-26 07:24:04 +00:00
kern_linker.c When trying each linker class in turn with a preloaded module, exit 2004-08-27 01:20:26 +00:00
kern_lock.c Reintroduce slightly modified patch from kern/69964. Check for 2004-08-27 01:41:28 +00:00
kern_lockf.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
kern_mac.c Bump MAC Framework version to 2 in preparation for the upcoming API/ABI 2004-11-09 11:28:40 +00:00
kern_malloc.c Turn VM_KMEM_SIZE_MAX and VM_KMEM_SIZE_SCALE into tunables. 2004-09-29 14:21:40 +00:00
kern_mbuf.c CTASSERT that MSZIE is a power of 2 (otherwise dtom() breaks) 2004-09-20 08:52:04 +00:00
kern_mib.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
kern_module.c Don't bother calling the module event handlers from module_shutdown() 2004-08-20 21:47:48 +00:00
kern_mtxpool.c
kern_mutex.c Refine the turnstile and sleep queue interfaces just a bit: 2004-10-12 18:36:20 +00:00
kern_ntptime.c Place function comment above the right function. 2004-11-19 00:58:30 +00:00
kern_physio.c Remove buf->b_dev field. 2004-11-04 07:59:57 +00:00
kern_poll.c Add a NULL param to an mi_switch() that I missed. 2004-07-03 02:38:03 +00:00
kern_proc.c Axe a.out core dump support. Neither older gdb binaries nor current 2004-11-27 06:46:59 +00:00
kern_prot.c Remove sched_free_thread() which was only used 2004-08-31 06:12:13 +00:00
kern_resource.c Rework how we store process times in the kernel such that we always store 2004-10-05 18:51:11 +00:00
kern_sema.c Change the return value of sema_timedwait() so it returns 0 on 2004-06-14 18:19:05 +00:00
kern_shutdown.c Bind to cpu0 for boot() processing on all platforms again. 2004-11-08 04:52:26 +00:00
kern_sig.c Fix an off by one error. MAXPATHLEN already has +1. 2004-11-15 20:51:32 +00:00
kern_subr.c Eliminate an unused argument to vm_pgmoveco(). 2004-11-08 06:57:31 +00:00
kern_switch.c Remove local definitions of RANGEOF() and use __rangeof() instead. 2004-11-20 23:00:59 +00:00
kern_sx.c Fix _sx_assert() to panic() rather than printf() when an assertion fails 2004-02-27 16:13:44 +00:00
kern_synch.c Unlock mutex if PDROP was set by caller. 2004-11-27 11:43:31 +00:00
kern_syscalls.c Do a pass over all modules in the kernel and make them return EOPNOTSUPP 2004-07-15 08:26:07 +00:00
kern_sysctl.c Move the 'debug' sysctl tree under options SYSCTL_DEBUG. It generates 2004-10-27 19:26:01 +00:00
kern_tc.c Put on my peril sensitive sunglasses and add a flags field to the internal 2004-10-11 22:04:16 +00:00
kern_thr.c Remove local definitions of RANGEOF() and use __rangeof() instead. 2004-11-20 23:00:59 +00:00
kern_thread.c Remove local definitions of RANGEOF() and use __rangeof() instead. 2004-11-20 23:00:59 +00:00
kern_time.c Rework how we store process times in the kernel such that we always store 2004-10-05 18:51:11 +00:00
kern_timeout.c Cut a KTR record whenever a callout is invoked. Mark whether it runs 2004-08-06 21:49:00 +00:00
kern_umtx.c writers must hold both sched_lock and the process lock; therefore, readers 2004-07-12 15:28:31 +00:00
kern_uuid.c Fix generation of random multicast MAC address. 2004-01-22 13:34:11 +00:00
kern_xxx.c In osethostname(), don't need to call suser() directly as 2004-10-22 12:10:50 +00:00
ksched.c
link_elf_obj.c Add support for completing the installation of ELF relocatable 2004-08-29 01:21:51 +00:00
link_elf.c Normalize the VM wiring done with SPARSE_MAPPING: check for errors, and 2004-08-09 18:46:13 +00:00
linker_if.m
Make.tags.inc
Makefile
makesyscalls.sh Remove the namespace column from the syscalls tables. We don't actually 2003-12-23 03:50:43 +00:00
md4c.c
md5c.c
p1003_1b.c
posix4_mib.c
sched_4bsd.c When preempting a thread, put it back on the HEAD of its run queue. 2004-10-05 22:03:10 +00:00
sched_ule.c - Temporarily disable the nice -20 throttling code. It has some interaction 2004-11-11 19:48:57 +00:00
subr_acl_posix1e.c Rename suser_cred()'s PRISON_ROOT flag to SUSER_ALLOWJAIL. This is 2004-07-26 07:24:04 +00:00
subr_autoconf.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_blist.c Move the definitions of SWAPBLK_NONE and SWAPBLK_MASK from vm_page.h to 2004-06-04 04:03:26 +00:00
subr_bus.c Don't print the singularly unhelpful message: 2004-11-03 09:06:45 +00:00
subr_clist.c Preparation commit for the tty cleanups that will follow in the near 2004-07-15 20:47:41 +00:00
subr_clock.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_devstat.c Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
subr_disk.c Add bioq_takefirst(). 2004-08-19 19:51:51 +00:00
subr_eventhandler.c
subr_hints.c
subr_kdb.c Zero terminate empty sting in kdb_sysctl_available. 2004-10-21 01:11:25 +00:00
subr_kobj.c
subr_log.c Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
subr_mbpool.c
subr_mchain.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_module.c
subr_msgbuf.c
subr_param.c #include <vm/vm_param.h> instead of <machine/vmparam.h> (the former 2004-11-08 18:20:02 +00:00
subr_pcpu.c
subr_power.c Move the kernel power change printf under bootverbose since the 2004-01-02 18:24:13 +00:00
subr_prf.c Update for the KDB framework: 2004-07-10 21:43:23 +00:00
subr_prof.c - Move TDF_OWEPREEMPT, TDF_OWEUPC, and TDF_USTATCLOCK over to td_pflags 2004-07-16 21:04:55 +00:00
subr_rman.c Add a newline. 2004-08-19 20:16:09 +00:00
subr_rtc.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_sbuf.c Cosmetic adjustment to previous commit: name the second argument to 2004-07-09 11:37:44 +00:00
subr_scanf.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_sleepqueue.c - Store threads on sleep queues in FIFO order rather than sorted by 2004-11-05 20:19:58 +00:00
subr_smp.c Move 4bsd specific experimental IP code into the 4bsd file. 2004-09-03 07:42:31 +00:00
subr_taskqueue.c Add taskqueue_drain. This waits for the specified task to finish, if 2004-10-05 04:16:01 +00:00
subr_trap.c Add a new per-thread private flag: TDP_GEOM. 2004-10-23 20:49:17 +00:00
subr_turnstile.c Refine the turnstile and sleep queue interfaces just a bit: 2004-10-12 18:36:20 +00:00
subr_unit.c Add delete_unrhdr() function. 2004-10-25 12:27:03 +00:00
subr_witness.c clean up some tunables that should of been removed a while ago... 2004-11-09 06:46:14 +00:00
sys_generic.c Push Giant down through ioctl. 2004-11-17 09:09:55 +00:00
sys_pipe.c Correct a bug introduced in sys_pipe.c:1.179: in pipe_ioctl(), 2004-11-23 22:15:08 +00:00
sys_process.c Don't include sys/user.h merely for its side-effect of recursively 2004-11-27 06:51:39 +00:00
sys_socket.c Push Giant down through ioctl. 2004-11-17 09:09:55 +00:00
syscalls.c Regen. 2004-11-25 12:08:16 +00:00
syscalls.master Mark mount, unmount and nmount MPSAFE 2004-11-25 12:07:28 +00:00
sysv_ipc.c Add an annotation to the comment for sysv_ipc.c to indicate that the 2004-10-22 12:12:40 +00:00
sysv_msg.c Second of several commits to allow kernel System V IPC data structures 2004-11-12 13:23:47 +00:00
sysv_sem.c Correct two incorrectly merged changes introduced in sysv_sem.c:1.71: 2004-11-13 08:06:40 +00:00
sysv_shm.c Second of several commits to allow kernel System V IPC data structures 2004-11-12 13:23:47 +00:00
tty_compat.c Put the pre FreeBSD-2.x tty compat code under BURN_BRIDGES. 2004-06-21 22:57:16 +00:00
tty_conf.c Preparation commit for the tty cleanups that will follow in the near 2004-07-15 20:47:41 +00:00
tty_cons.c Hold threadcount reference when we call into the underlying console 2004-09-24 07:16:56 +00:00
tty_pty.c Add new function ttyinitmode() which sets our systemwide default 2004-10-18 21:51:27 +00:00
tty_subr.c Preparation commit for the tty cleanups that will follow in the near 2004-07-15 20:47:41 +00:00
tty_tty.c Second half of the dev_t cleanup. 2004-06-17 17:16:53 +00:00
tty.c Improvements and fixes in the 1.241 commit: 2004-11-16 17:41:16 +00:00
uipc_accf.c Add a global mutex, accept_filter_mtx, to protect the global list of 2004-06-01 04:08:48 +00:00
uipc_cow.c Introduce two new options, "CPU private" and "no wait", to sf_buf_alloc(). 2004-11-08 00:43:46 +00:00
uipc_domain.c - Introduce protosw_init(). 2004-11-11 19:19:54 +00:00
uipc_jumbo.c The synchronization provided by vm object locking has eliminated the 2004-11-03 20:17:31 +00:00
uipc_mbuf2.c Rename _m_tag_free() to m_tag_free_default() and make it non-static. 2004-10-11 18:40:19 +00:00
uipc_mbuf.c improve the mbuf m_print function.. Only pull length from pkthdr if there 2004-09-28 18:40:18 +00:00
uipc_proto.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
uipc_sem.c Add missing #include <sys/module.h> 2004-05-30 20:34:58 +00:00
uipc_sockbuf.c Fix a typo in a comparison appeared in rev. 1.125. 2004-10-27 05:37:58 +00:00
uipc_socket2.c Fix a typo in a comparison appeared in rev. 1.125. 2004-10-27 05:37:58 +00:00
uipc_socket.c Since sb_timeo type was increased to int, use INT_MAX instead of SHRT_MAX. 2004-11-09 18:35:26 +00:00
uipc_syscalls.c Introduce an alias for FILEDESC_{UN}LOCK() with the suffix _FAST. 2004-11-13 11:53:02 +00:00
uipc_usrreq.c Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
vfs_acl.c Rename suser_cred()'s PRISON_ROOT flag to SUSER_ALLOWJAIL. This is 2004-07-26 07:24:04 +00:00
vfs_aio.c Remove buf->b_dev field. 2004-11-04 07:59:57 +00:00
vfs_bio.c - Eliminate the acquisition and release of the bqlock in bremfree() by 2004-11-18 08:44:09 +00:00
vfs_cache.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
vfs_cluster.c Don't manually set b_bufobj, pbgetvp() does this for us. 2004-11-15 08:38:50 +00:00
vfs_default.c Make more sense out of vop_stdcreatevobject() 2004-11-18 07:55:05 +00:00
vfs_export.c Make VFS_ROOT() and vflush() take a thread argument. 2004-07-12 08:14:09 +00:00
vfs_extattr.c Eliminate pointless goto. 2004-11-16 08:22:06 +00:00
vfs_init.c Simplify initialization of va_null a little bit. 2004-09-15 21:42:03 +00:00
vfs_lookup.c Assert Giant in namei(). Bugs have been reported in which, following 2004-08-04 18:39:07 +00:00
vfs_mount.c Use FILEDESC_LOCK_FAST in checkdirs() 2004-11-28 11:26:43 +00:00
vfs_subr.c Move pbgetvp() and pbrelvp() to vm_pager.c with the rest of the pbuf stuff. 2004-11-15 08:12:50 +00:00
vfs_syscalls.c Eliminate pointless goto. 2004-11-16 08:22:06 +00:00
vfs_vnops.c Ok, first blunder: ioctls are not entirely unused on vnodes anymore :-) 2004-11-18 17:15:04 +00:00
vnode_if.src Make VOP_BMAP return a struct bufobj for the underlying storage device 2004-11-15 09:18:27 +00:00