freebsd-dev/sys/kern
Mike Silbersack b49d824e8b Add the SF_NODISKIO flag to sendfile. This flag causes sendfile to be
mindful of blocking on disk I/O and instead return EBUSY when such
blocking would occur.

Results from the DeBox project indicate that blocking on disk I/O
can slow the performance of a kqueue/poll based webserver.  Using
a flag such as SF_NODISKIO and throwing connections that would block
to helper processes/threads helped increase performance.

Currently, only the Flash webserver uses this flag, although it could
probably be applied to thttpd with relative ease.

Idea by:	Yaoping Ruan & Vivek Pai
2004-02-08 07:35:48 +00:00
..
bus_if.m Introduce BUS_CONFIG_INTR(). The method allows devices to tell parents 2003-09-10 21:37:10 +00:00
clock_if.m
device_if.m
genassym.sh
imgact_aout.c Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +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 Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +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 Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +00:00
init_sysent.c Regen after adding ksem_timedwait(). 2004-02-03 05:11:31 +00:00
kern_acct.c Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +00:00
kern_acl.c Move more ACL logic from the UFS code (ufs_acl.c) to the central POSIX.1e 2003-08-04 02:13:05 +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 Catch a few places where NULL (pointer) was used where 0 (integer) was 2003-12-23 02:36:43 +00:00
kern_condvar.c - Add a flags parameter to mi_switch. The value of flags may be SW_VOL or 2004-01-25 03:54:52 +00:00
kern_conf.c Retire revoke_and_destroy_dev() with extreme prejudice. 2003-09-28 20:50:36 +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 Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +00:00
kern_environment.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
kern_event.c Don't TAILQ_INIT kq_head twice, once is enough. 2003-12-25 23:42:36 +00:00
kern_exec.c Fixed some style bugs (mainly, try to always use explicit comparisons with 2003-12-28 04:37:59 +00:00
kern_exit.c Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +00:00
kern_fork.c Always set a process' state to normal when it is fully constructed in 2004-02-05 21:01:37 +00:00
kern_idle.c Always set a process' state to normal when it is fully constructed in 2004-02-05 21:01:37 +00:00
kern_intr.c - Add a flags parameter to mi_switch. The value of flags may be SW_VOL or 2004-01-25 03:54:52 +00:00
kern_jail.c Defer the vrele() on a jail's root vnode reference from prison_free() 2004-01-23 20:44:26 +00:00
kern_kse.c Use mtx_assert() rather than using a home-rolled version. 2004-01-28 20:26:39 +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 Reduce gratuitous includes: don't include jail.h if it's not needed. 2004-01-21 17:10:47 +00:00
kern_linker.c Avoid NULL pointer dereferencing in modlist_lookup2(). 2003-09-23 14:42:38 +00:00
kern_lock.c Add pid to the info printed in lockmgr_printinfo. This makes VFS 2004-01-06 04:34:13 +00:00
kern_lockf.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
kern_mac.c Coalesce pipe allocations and frees. Previously, the pipe code 2004-02-01 05:56:51 +00:00
kern_malloc.c Rename the kern.vm.kmem.size tunable to the more logical vm.kmem_size. To 2004-01-27 15:59:38 +00:00
kern_mib.c Change all SYSCTLS which are readonly and have a related TUNABLE 2003-10-21 18:28:36 +00:00
kern_module.c Use __FBSDID(). 2003-06-11 00:56:59 +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 Add a reset sysctl for mutex profiling: zeros all of the mutex 2004-01-28 22:11:53 +00:00
kern_ntptime.c Deal with MOD_FREQUENCY before MOD_OFFSET because the latter is the 2004-01-24 21:48:43 +00:00
kern_physio.c Send B_PHYS out to pasture, it no longer serves any function. 2003-11-15 09:28:09 +00:00
kern_poll.c - Add a flags parameter to mi_switch. The value of flags may be SW_VOL or 2004-01-25 03:54:52 +00:00
kern_proc.c - Update the sched api. sched_{add,rem,clock,pctcpu} now all accept a td 2003-10-16 08:39:15 +00:00
kern_prot.c Don't grab Giant in crfree(), since prison_free() no longer requires it. 2004-01-23 21:07:52 +00:00
kern_resource.c - Convert the plimit lock to a pool mutex lock. 2004-02-06 19:35:14 +00:00
kern_sema.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
kern_shutdown.c - Add a flags parameter to mi_switch. The value of flags may be SW_VOL or 2004-01-25 03:54:52 +00:00
kern_sig.c Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +00:00
kern_subr.c Rename iov_to_uio to uiofromiov to be more consistent with other 2004-02-04 08:43:21 +00:00
kern_switch.c - style fixes to the critical_exit() KASSERT(). 2004-02-02 08:13:27 +00:00
kern_sx.c Allow assert that the current thread does not hold the sx(9) lock. 2004-02-04 08:14:58 +00:00
kern_synch.c - Revert rev 1.240 we no longer need a kthread for loadav(). 2004-02-01 05:37:36 +00:00
kern_syscalls.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
kern_sysctl.c Bring back sysctl_wire_old_buffer(). Fix a bug in sysctl_handle_opaque() 2003-10-05 13:31:33 +00:00
kern_tc.c Write 100 times for tomorrow: 2004-01-22 19:50:06 +00:00
kern_thr.c Update powerpc to use the (old thread,new thread) calling convention 2003-08-14 03:56:24 +00:00
kern_thread.c Use mtx_assert() rather than using a home-rolled version. 2004-01-28 20:26:39 +00:00
kern_time.c constify the second args to timevaladd() and timevalsub(). 2003-10-26 02:19:00 +00:00
kern_timeout.c Make the DIAGNOSTIC code which complains about long {call|time}out(9) 2003-12-07 20:03:28 +00:00
kern_umtx.c Return EINVAL if the contested bit is not set on the umtx passed to 2003-09-07 11:14:52 +00:00
kern_uuid.c Fix generation of random multicast MAC address. 2004-01-22 13:34:11 +00:00
kern_xxx.c Correct mostly harmless off-by-one error in getdomainname(). 2003-09-13 17:12:22 +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 Add the mlockall() and munlockall() system calls. 2003-08-11 07:14:08 +00:00
link_elf.c Add the mlockall() and munlockall() system calls. 2003-08-11 07:14:08 +00:00
linker_if.m The method link_preload_finish is not static. 2003-09-20 17:39:32 +00:00
Make.tags.inc Finish driving a stake through the heart of netns and the associated 2003-03-05 19:24:24 +00:00
Makefile Finish driving a stake through the heart of netns and the associated 2003-03-05 19:24:24 +00:00
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 - Disable ithread binding in all cases for now. This doesn't make as much 2004-02-01 06:20:18 +00:00
sched_ule.c - Allow interactive tasks to use the maximum time-slice. This is not as 2004-02-01 10:38:13 +00:00
subr_acl_posix1e.c Move more ACL logic from the UFS code (ufs_acl.c) to the central POSIX.1e 2003-08-04 02:13:05 +00:00
subr_autoconf.c Revert stuff which accidentally ended up in the previous commit. 2003-07-22 10:36:36 +00:00
subr_blist.c Expand inline the relevant parts of src/COPYRIGHT for Matt Dillon's 2003-08-12 23:24:05 +00:00
subr_bus.c o make debug_mpsafenet globally visible 2003-11-05 23:42:51 +00:00
subr_clist.c Revert stuff which accidentally ended up in the previous commit. 2003-07-22 10:36:36 +00:00
subr_clock.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
subr_devstat.c The present defaults for the open and close for device drivers which 2003-09-27 12:01:01 +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_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 - Implement selwakeuppri() which allows raising the priority of a 2003-11-09 09:17: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_mbuf.c Track current and peak sfbuf usage, export the values via sysctl. 2003-12-27 07:52:47 +00:00
subr_mchain.c Use __FBSDID(). 2003-06-11 00:56:59 +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 More pipe changes: 2003-08-11 05:51:51 +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 Re-arrange and consolidate some random debugging stuff 2003-12-07 05:04:49 +00:00
subr_prof.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
subr_rman.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
subr_rtc.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
subr_sbuf.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
subr_scanf.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
subr_smp.c - Move smp_topology to subr_smp.c so that it is defined on all architectures. 2004-01-24 19:52:48 +00:00
subr_taskqueue.c Various style fixes. 2003-12-17 21:13:04 +00:00
subr_trap.c Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +00:00
subr_turnstile.c - Add a flags parameter to mi_switch. The value of flags may be SW_VOL or 2004-01-25 03:54:52 +00:00
subr_witness.c Remove a bogus assertion. 2004-02-03 15:14:27 +00:00
sys_generic.c Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +00:00
sys_pipe.c Don't dec/inc the amountpipes counter every time we resize a pipe -- 2004-02-03 04:55:24 +00:00
sys_process.c Implement preliminary support for the PT_SYSCALL command to ptrace(2). 2003-10-09 10:17:16 +00:00
sys_socket.c Initialize struct fileops with C99 sparse initialization. 2003-06-18 18:16:40 +00:00
syscalls.c Regen after adding ksem_timedwait(). 2004-02-03 05:11:31 +00:00
syscalls.master Add ksem_timedwait() to complement ksem_wait(). 2004-02-03 05:08:32 +00:00
sysv_ipc.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
sysv_msg.c Slight whitespace consistency improvement: 2003-11-07 04:47:14 +00:00
sysv_sem.c Reduce the overhead of semop() by using the kernel stack instead of 2003-12-19 13:07:17 +00:00
sysv_shm.c Correct a reference counting bug in shmat(2). If vm_map_find(9) 2004-02-05 18:00:35 +00:00
tty_compat.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
tty_conf.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
tty_cons.c Rename cn_unavailable to cnunavailable for little more consistency. 2004-02-05 17:35:28 +00:00
tty_pty.c - Implement selwakeuppri() which allows raising the priority of a 2003-11-09 09:17:26 +00:00
tty_subr.c Revert stuff which accidentally ended up in the previous commit. 2003-07-22 10:36:36 +00:00
tty_tty.c The present defaults for the open and close for device drivers which 2003-09-27 12:01:01 +00:00
tty.c A variety of further cleanups to ttyinfo(): 2004-02-04 05:46:05 +00:00
uipc_accf.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
uipc_cow.c Handle sf_buf_alloc() returning null. This can happen if the 2004-01-17 21:16:51 +00:00
uipc_domain.c move domain list mutex initialization to earlier in the boot sequence so 2003-09-02 20:59:23 +00:00
uipc_jumbo.c Lock the vm object when removing a page. 2003-06-11 21:23:04 +00:00
uipc_mbuf2.c m_tag fixups in preparation for heavier use: 2004-01-02 17:27:39 +00:00
uipc_mbuf.c Style fixes: don't indent variable names. 2004-02-05 08:29:27 +00:00
uipc_proto.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
uipc_sem.c Add ksem_timedwait() to complement ksem_wait(). 2004-02-03 05:08:32 +00:00
uipc_sockbuf.c Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +00:00
uipc_socket2.c Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +00:00
uipc_socket.c Introduce the SO_BINTIME option which takes a high-resolution timestamp 2004-01-31 10:40:25 +00:00
uipc_syscalls.c Add the SF_NODISKIO flag to sendfile. This flag causes sendfile to be 2004-02-08 07:35:48 +00:00
uipc_usrreq.c Restore correct semantics for F_DUPFD fcntl. This should fix the errors 2004-01-17 00:59:04 +00:00
vfs_acl.c Move more ACL logic from the UFS code (ufs_acl.c) to the central POSIX.1e 2003-08-04 02:13:05 +00:00
vfs_aio.c Send B_PHYS out to pasture, it no longer serves any function. 2003-11-15 09:28:09 +00:00
vfs_bio.c swp_pager_async_iodone() no longer requires Giant. Modify bufdone() 2004-02-07 08:54:50 +00:00
vfs_cache.c - Apply a big giant lock around the namecache. This has been sitting in 2003-10-05 07:13:50 +00:00
vfs_cluster.c Update the statfs structure with 64-bit fields to allow 2003-11-12 08:01:40 +00:00
vfs_default.c Remove mntvnode_mtx and replace it with per-mountpoint mutex. 2003-11-05 04:30:08 +00:00
vfs_export.c Guard against MLEN growing larger than a uint8_t due to MSIZE grwoing to a 2003-07-26 07:23:24 +00:00
vfs_extattr.c New file descriptor allocation code, derived from similar code introduced 2004-01-15 10:15:04 +00:00
vfs_init.c Change all SYSCTLS which are readonly and have a related TUNABLE 2003-10-21 18:28:36 +00:00
vfs_lookup.c Use __FBSDID(). 2003-06-11 00:56:59 +00:00
vfs_mount.c Fix many issues related to mount/unmount: 2004-02-02 19:02:05 +00:00
vfs_subr.c More style fixes. 2004-01-05 23:40:46 +00:00
vfs_syscalls.c New file descriptor allocation code, derived from similar code introduced 2004-01-15 10:15:04 +00:00
vfs_vnops.c v_vxproc was a bogus name for a thread (pointer). 2003-12-28 09:12:56 +00:00
vnode_if.src Rename VOP_RMEXTATTR() to VOP_DELETEEXTATTR() for consistency with the 2003-07-28 18:53:29 +00:00