freebsd-dev/sys/kern
Robert Watson 1c1ce9253f Push acquisition of Giant from fdrop_closed() into fo_close() so that
individual file object implementations can optionally acquire Giant if
they require it:

- soo_close(): depends on debug.mpsafenet
- pipe_close(): Giant not acquired
- kqueue_close(): Giant required
- vn_close(): Giant required
- cryptof_close(): Giant required (conservative)

Notes:

  Giant is still acquired in close() even when closing MPSAFE objects
  due to kqueue requiring Giant in the calling closef() code.
  Microbenchmarks indicate that this removal of Giant cuts 3%-3% off
  of pipe create/destroy pairs from user space with SMP compiled into
  the kernel.

  The cryptodev and opencrypto code appears MPSAFE, but I'm unable to
  test it extensively and so have left Giant over fo_close().  It can
  probably be removed given some testing and review.
2004-07-22 18:35:43 +00:00
..
bus_if.m Add doxygen doc comments for most of newbus and the BUS interface. 2004-07-18 16:30:31 +00:00
clock_if.m
device_if.m Expand and rewrite documentation using doxygen markup so that we can 2004-07-11 16:17:42 +00:00
genassym.sh
imgact_aout.c Change the types of vn_rdwr_inchunks()'s len and aresid arguments to 2004-06-05 02:18:28 +00:00
imgact_elf32.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
imgact_elf64.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
imgact_elf.c After maintaining previous behaviour in writing out the core notes, it's 2004-07-18 20:28:07 +00:00
imgact_gzip.c Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +00:00
imgact_shell.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
inflate.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
init_main.c Make VFS_ROOT() and vflush() take a thread argument. 2004-07-12 08:14:09 +00:00
init_sysent.c Give kldunload a -f(orce) argument. 2004-07-13 19:36:59 +00:00
kern_acct.c Second half of the dev_t cleanup. 2004-06-17 17:16:53 +00:00
kern_acl.c Update my personal copyrights and NETA copyrights in the kernel 2004-02-22 00:33:12 +00:00
kern_alq.c Allow MAC policies to block/revoke kern_alq write access to a file. 2003-10-25 16:10:41 +00:00
kern_clock.c Update for the KDB framework: 2004-07-10 21:36:01 +00:00
kern_condvar.c Remove the signal_caught argument from sleepq_timedwait() as it was 2004-06-28 18:57:06 +00:00
kern_conf.c Better descriptions of the cdev malloc class and mutex. 2004-07-11 19:26:43 +00:00
kern_context.c Change the clear_ret argument of get_mcontext() to be a flags argument. 2003-11-09 20:31:04 +00:00
kern_descrip.c Push acquisition of Giant from fdrop_closed() into fo_close() so that 2004-07-22 18:35:43 +00:00
kern_environment.c If the buffer supplied to kenv(KENV_DUMP, ...) isn't big enough, 2004-04-28 01:27:33 +00:00
kern_event.c Push acquisition of Giant from fdrop_closed() into fo_close() so that 2004-07-22 18:35:43 +00:00
kern_exec.c Push down the acquisition and release of the page queues lock into 2004-07-13 02:49:22 +00:00
kern_exit.c When calling scheduler entrypoints for creating new threads and processes, 2004-07-18 23:36:13 +00:00
kern_fork.c When calling scheduler entrypoints for creating new threads and processes, 2004-07-18 23:36:13 +00:00
kern_idle.c - Change mi_switch() and sched_switch() to accept an optional thread to 2004-07-02 19:09:50 +00:00
kern_intr.c Implement preemption of kernel threads natively in the scheduler rather 2004-07-02 20:21:44 +00:00
kern_jail.c Add two missing includes and remove two uneeded. 2004-06-27 09:03:22 +00:00
kern_kse.c When calling scheduler entrypoints for creating new threads and processes, 2004-07-18 23:36:13 +00:00
kern_kthread.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
kern_ktr.c Update the license on this file to be a bit more sane. 2003-09-10 01:09:32 +00:00
kern_ktrace.c Clean up and wash struct iovec and struct uio handling. 2004-07-10 15:42:16 +00:00
kern_linker.c Give kldunload a -f(orce) argument. 2004-07-13 19:36:59 +00:00
kern_lock.c Move TDF_DEADLKTREAT into td_pflags (and rename it accordingly) to avoid 2004-06-03 01:47:37 +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 Do a pass over all modules in the kernel and make them return EOPNOTSUPP 2004-07-15 08:26:07 +00:00
kern_malloc.c Reimplement contigmalloc(9) with an algorithm which stands a greatly- 2004-07-19 06:21:27 +00:00
kern_mbuf.c Fix a couple of bugs in the mbuf and packet ctors. In the latter case, 2004-06-01 16:17:10 +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 Do a pass over all modules in the kernel and make them return EOPNOTSUPP 2004-07-15 08:26:07 +00:00
kern_mtxpool.c Rearrange the SYSINIT order to call lockmgr_init() earlier so that 2003-07-16 01:00:39 +00:00
kern_mutex.c #ifdef __i386__ -> __i386__ || __amd64__ 2004-07-20 02:15:10 +00:00
kern_ntptime.c Annual NTP kernel code spring-cleaning: 2004-03-14 15:23:05 +00:00
kern_physio.c Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +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 Fill in the values for the ki_tid and ki_numthreads which have been 2004-06-20 22:17:22 +00:00
kern_prot.c suser() accepts a thread argument; as suser() dereferences td_ucred, a 2004-07-22 17:05:04 +00:00
kern_resource.c Turned off the "calcru: negative time" warning for certain SMP cases 2004-06-21 17:46:27 +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 Don't sync the file system on panic by default. This seems to basically 2004-07-21 16:04:46 +00:00
kern_sig.c Improve readability a bit by changing some code at the end of a function 2004-07-16 21:00:50 +00:00
kern_subr.c Clean up and wash struct iovec and struct uio handling. 2004-07-10 15:42:16 +00:00
kern_switch.c Disable the PREEMPTION-enabled code in critical_exit() that encourages 2004-07-22 14:32:48 +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 - Move TDF_OWEPREEMPT, TDF_OWEUPC, and TDF_USTATCLOCK over to td_pflags 2004-07-16 21:04:55 +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 Make sysctl_wire_old_buffer() respect ENOMEM from vslock() by marking 2004-06-11 02:20:37 +00:00
kern_tc.c Just because the timecounter reads the same value on two samples 2004-03-04 14:14:23 +00:00
kern_thr.c When calling scheduler entrypoints for creating new threads and processes, 2004-07-18 23:36:13 +00:00
kern_thread.c When calling scheduler entrypoints for creating new threads and processes, 2004-07-18 23:36:13 +00:00
kern_time.c Update previous commit to: 2004-06-21 22:34:57 +00:00
kern_timeout.c The paper "Hashed Timers and Hierarchical Wheels: Data Structures for the 2004-04-25 04:10:17 +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 Deorbit COMPAT_SUNOS. 2004-06-11 11:16:26 +00:00
ksched.c sched_setscheduler: Return EINVAL when a invalid policy is specified, 2003-09-13 18:46:24 +00:00
link_elf_obj.c Give kldunload a -f(orce) argument. 2004-07-13 19:36:59 +00:00
link_elf.c Give kldunload a -f(orce) argument. 2004-07-13 19:36:59 +00:00
linker_if.m The method link_preload_finish is not static. 2003-09-20 17:39:32 +00:00
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 Use __FBSDID(). 2003-06-11 00:56:59 +00:00
md5c.c Revert stuff which accidentally ended up in the previous commit. 2003-07-22 10:36:36 +00:00
p1003_1b.c Use __FBSDID(). 2003-06-11 06:34:30 +00:00
posix4_mib.c Use __FBSDID(). 2003-06-11 06:34:30 +00:00
sched_4bsd.c When calling scheduler entrypoints for creating new threads and processes, 2004-07-18 23:36:13 +00:00
sched_ule.c When calling scheduler entrypoints for creating new threads and processes, 2004-07-18 23:36:13 +00:00
subr_acl_posix1e.c Update my personal copyrights and NETA copyrights in the kernel 2004-02-22 00:33:12 +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 Add doxygen doc comments for most of newbus and the BUS interface. 2004-07-18 16:30:31 +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 Report bio_pblkbo instead of bio_blkno. 2003-10-18 17:27:10 +00:00
subr_eventhandler.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
subr_hints.c Add a resource_disabled() helper function that returns true (non-zero) if 2003-07-02 16:01:38 +00:00
subr_kdb.c Add kdb_thr_from_pid(), which given a PID returns the first thread 2004-07-21 04:49:48 +00:00
subr_kobj.c * Add multiple inheritance to kobj. Each class can have zero or more base 2003-10-16 09:16:28 +00:00
subr_log.c Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
subr_mbpool.c Pass MTX_DEF as the last argument to mtx_init() instead of 0. This 2003-12-07 21:53:41 +00:00
subr_mchain.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_module.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
subr_msgbuf.c Put the message about msgbuf cksum mismatch under bootverbose and tell 2003-09-05 11:12:00 +00:00
subr_param.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
subr_pcpu.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
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 ability to set start/end for rman 2004-07-01 16:22:10 +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 - Change mi_switch() and sched_switch() to accept an optional thread to 2004-07-02 19:09:50 +00:00
subr_smp.c Move the CPU newbus attachment to i386 legacy. The acpi_cpu device will 2004-05-06 15:54:02 +00:00
subr_taskqueue.c - Execute all of the tasks on the taskqueue during taskqueue_free() after 2004-06-28 16:28:23 +00:00
subr_trap.c - Move TDF_OWEPREEMPT, TDF_OWEUPC, and TDF_USTATCLOCK over to td_pflags 2004-07-16 21:04:55 +00:00
subr_turnstile.c - Change mi_switch() and sched_switch() to accept an optional thread to 2004-07-02 19:09:50 +00:00
subr_witness.c Update for the KDB framework: 2004-07-10 21:42:16 +00:00
sys_generic.c Clean up and wash struct iovec and struct uio handling. 2004-07-10 15:42:16 +00:00
sys_pipe.c Fix a minor error in pipe_stat - st_size was always reported as 0 2004-07-20 07:06:43 +00:00
sys_process.c Fix typo. 2004-07-17 23:15:41 +00:00
sys_socket.c Push acquisition of Giant from fdrop_closed() into fo_close() so that 2004-07-22 18:35:43 +00:00
syscalls.c Give kldunload a -f(orce) argument. 2004-07-13 19:36:59 +00:00
syscalls.master Add kldunloadf() system call. Stay tuned for follwing commit messages. 2004-07-13 19:35:11 +00:00
sysv_ipc.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
sysv_msg.c Add missing #include <sys/module.h> 2004-05-30 20:34:58 +00:00
sysv_sem.c Add missing #include <sys/module.h> 2004-05-30 20:34:58 +00:00
sysv_shm.c Eliminate struct shm_handle. It is an unnecessary level of indirection to 2004-07-09 05:28:38 +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 Update for the KDB framework: 2004-07-10 21:43:23 +00:00
tty_pty.c Preparation commit for the tty cleanups that will follow in the near 2004-07-15 20:47:41 +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 Preparation commit for the tty cleanups that will follow in the near 2004-07-15 20:47:41 +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 In some cases, sf_buf_alloc() should sleep with pri PCATCH; in others, it 2004-04-03 09:16:27 +00:00
uipc_domain.c Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
uipc_jumbo.c Lock the vm object when removing a page. 2003-06-11 21:23:04 +00:00
uipc_mbuf2.c Make sure we don't call mbuf allocation functions with mutexes held. 2004-07-21 07:12:24 +00:00
uipc_mbuf.c Back out just a portion of Alfred's last commit. Remove the MBUF_CHECK 2004-07-21 21:03:01 +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 Reduce the number of unnecessary unlock-relocks on socket buffer mutexes 2004-06-26 19:10:39 +00:00
uipc_socket2.c Reduce the number of unnecessary unlock-relocks on socket buffer mutexes 2004-06-26 19:10:39 +00:00
uipc_socket.c The recent changes to control message passing broke some things 2004-07-18 19:10:36 +00:00
uipc_syscalls.c Add a kern_setsockopt and kern_getsockopt which can read the option 2004-07-17 21:06:36 +00:00
uipc_usrreq.c Drop Giant and acquire the UNIX domain socket subsystem lock a bit 2004-07-18 01:29:43 +00:00
vfs_acl.c Update my personal copyrights and NETA copyrights in the kernel 2004-02-22 00:33:12 +00:00
vfs_aio.c Merge additional socket buffer locking from rwatson_netperf: 2004-06-17 22:48:11 +00:00
vfs_bio.c Remove GIANT_REQUIRED from vmapbuf(). 2004-07-18 04:57:49 +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 Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00
vfs_default.c Make VFS_ROOT() and vflush() take a thread argument. 2004-07-12 08:14:09 +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 Make VFS_ROOT() and vflush() take a thread argument. 2004-07-12 08:14:09 +00:00
vfs_init.c Do a pass over all modules in the kernel and make them return EOPNOTSUPP 2004-07-15 08:26:07 +00:00
vfs_lookup.c Make VFS_ROOT() and vflush() take a thread argument. 2004-07-12 08:14:09 +00:00
vfs_mount.c Give kldunload a -f(orce) argument. 2004-07-13 19:36:59 +00:00
vfs_subr.c put several of the options for DEBUG_VFS_LOCKS under control of sysctls. 2004-07-21 07:13:14 +00:00
vfs_syscalls.c Make VFS_ROOT() and vflush() take a thread argument. 2004-07-12 08:14:09 +00:00
vfs_vnops.c Push acquisition of Giant from fdrop_closed() into fo_close() so that 2004-07-22 18:35:43 +00:00
vnode_if.src Remove advertising clause from University of California Regent's license, 2004-04-05 21:03:37 +00:00