CVSROOT: /cvs Module name: src Changes by: t...@cvs.openbsd.org 2009/08/20 09:04:24
Modified files: sys/conf : files sys/nfs : nfs.h nfs_bio.c nfs_subs.c nfs_syscalls.c nfs_var.h nfs_vfsops.c nfs_vnops.c nfsmount.h nfsnode.h Added files: sys/nfs : nfs_aiod.c Log message: Rework the way we do async I/O in nfs. Introduce separate buf queues for each mount, and when work is "found", peg an aiod to that mount todo the I/O. Make nfs_asyncio() a bit smarter when deciding when to do asyncio and when to force it sync, this is done by keeping the aiod's one two lists, an "idle" and an "all" list, so asyncio is only done when there are aiods hanging around todo it for us or are already pegged to the mount. Idea liked by at least beck@ (and I think art@). Extensive testing done by myself and jasper and a few others on various arch's. Ideas/Code from Net/Free. OK blamb...@.