freebsd-nq/sys/fs
Poul-Henning Kamp 56dd3a6182 Add optional device vnode bypass to DEVFS.
The tunable vfs.devfs.fops controls this feature and defaults to off.

When enabled (vfs.devfs.fops=1 in loader), device vnodes opened
through a filedescriptor gets a special fops vector which instead
of the detour through the vnode layer goes directly to DEVFS.

Amongst other things this allows us to run Giant free read/write to
device drivers which have been weaned off D_NEEDGIANT.

Currently this means /dev/null, /dev/zero, disks, (and maybe the
random stuff ?)

On a 700MHz K7 machine this doubles the speed of
	dd if=/dev/zero of=/dev/null bs=1 count=1000000

This roughly translates to shaving 2usec of each read/write syscall.

The poll/kqfilter paths need more work before they are giant free,
this work is ongoing in p4::phk_bufwork

Please test this and report any problems, LORs etc.
2004-11-08 10:46:47 +00:00
..
cd9660 Move CD9660 to GEOM backing instead of DEVFS. 2004-10-29 10:41:44 +00:00
coda Do not use devsw() but si_devsw direction. This is still bogus but a 2004-09-23 12:19:24 +00:00
deadfs Remove advertising clause from University of California Regent's 2004-04-07 20:46:16 +00:00
devfs Add optional device vnode bypass to DEVFS. 2004-11-08 10:46:47 +00:00
fdescfs Put a version element in the VFS filesystem configuration structure 2004-07-30 22:08:52 +00:00
fifofs Properly implement a default version of VOP_GETWRITEMOUNT. 2004-11-06 11:41:22 +00:00
hpfs Move HPFS to GEOM backing instead of DEVFS. 2004-10-29 10:43:07 +00:00
msdosfs Move MSDOSFS to GEOM backing instead of DEVFS. 2004-10-29 10:40:14 +00:00
ntfs s/ffs/ntfs/ 2004-11-04 07:18:54 +00:00
nullfs Put a version element in the VFS filesystem configuration structure 2004-07-30 22:08:52 +00:00
nwfs Remove unused B_WRITEINPROG flag 2004-09-15 21:49:22 +00:00
portalfs Put a version element in the VFS filesystem configuration structure 2004-07-30 22:08:52 +00:00
procfs Rework how we store process times in the kernel such that we always store 2004-10-05 18:51:11 +00:00
pseudofs Back out pseudo_vnops.c:1.45, which was a workaround for pfind() 2004-09-02 16:04:09 +00:00
smbfs Remove unused B_WRITEINPROG flag 2004-09-15 21:49:22 +00:00
udf Move UDF to GEOM backing instead of DEVFS. 2004-10-29 10:40:58 +00:00
umapfs Put a version element in the VFS filesystem configuration structure 2004-07-30 22:08:52 +00:00
unionfs Eliminate unnecessary KASSERTs. 2004-10-27 06:48:21 +00:00