summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_usrreq.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2004-11-08 10:46:47 +0000
committerphk <phk@FreeBSD.org>2004-11-08 10:46:47 +0000
commit63cd9549c7364ad52248b1664e4c346890ee6448 (patch)
treec9cbf7fbe9e85ffb9c95ca6552b35574bb1404f7 /sys/netinet/tcp_usrreq.c
parent8461ec98deac6d4effb03efc1356c91047b5d84b (diff)
downloadFreeBSD-src-63cd9549c7364ad52248b1664e4c346890ee6448.zip
FreeBSD-src-63cd9549c7364ad52248b1664e4c346890ee6448.tar.gz
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.
Diffstat (limited to 'sys/netinet/tcp_usrreq.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud