56dd3a6182
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. |
||
---|---|---|
.. | ||
cd9660 | ||
coda | ||
deadfs | ||
devfs | ||
fdescfs | ||
fifofs | ||
hpfs | ||
msdosfs | ||
ntfs | ||
nullfs | ||
nwfs | ||
portalfs | ||
procfs | ||
pseudofs | ||
smbfs | ||
udf | ||
umapfs | ||
unionfs |