cvs commit: src/sys/amd64/amd64 trap.c src/sys/i386/i386 trap.c
src/sys/ia64/ia64 trap.c src/sys/kern kern_thread.c
src/sys/nfsclient nfs_socket.c nfs_subs.c nfs_vnops.c nfsnode.h
src/sys/powerpc/powerpc trap.c src/sys/sparc64/sparc64 trap.c ...
Mohan Srinivasan
mohans at FreeBSD.org
Fri Mar 9 04:02:38 UTC 2007
mohans 2007-03-09 04:02:38 UTC
FreeBSD src repository
Modified files:
sys/amd64/amd64 trap.c
sys/i386/i386 trap.c
sys/ia64/ia64 trap.c
sys/kern kern_thread.c
sys/nfsclient nfs_socket.c nfs_subs.c nfs_vnops.c
nfsnode.h
sys/powerpc/powerpc trap.c
sys/sparc64/sparc64 trap.c
sys/sys proc.h
Log:
Over NFS, an open() call could result in multiple over-the-wire
GETATTRs being generated - one from lookup()/namei() and the other
from nfs_open() (for cto consistency). This change eliminates the
GETATTR in nfs_open() if an otw GETATTR was done from the namei()
path. Instead of extending the vop interface, we timestamp each attr
load, and use this to detect whether a GETATTR was done from namei()
for this syscall. Introduces a thread-local variable that counts the
syscalls made by the thread and uses <pid, tid, thread syscalls> as
the attrload timestamp. Thanks to jhb@ and peter@ for a discussion on
thread state that could be used as the timestamp with minimal overhead.
Revision Changes Path
1.314 +2 -0 src/sys/amd64/amd64/trap.c
1.299 +2 -0 src/sys/i386/i386/trap.c
1.126 +2 -0 src/sys/ia64/ia64/trap.c
1.241 +1 -0 src/sys/kern/kern_thread.c
1.151 +1 -1 src/sys/nfsclient/nfs_socket.c
1.145 +9 -0 src/sys/nfsclient/nfs_subs.c
1.274 +10 -1 src/sys/nfsclient/nfs_vnops.c
1.60 +11 -0 src/sys/nfsclient/nfsnode.h
1.64 +2 -0 src/sys/powerpc/powerpc/trap.c
1.87 +3 -0 src/sys/sparc64/sparc64/trap.c
1.473 +1 -0 src/sys/sys/proc.h
More information about the cvs-src
mailing list