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
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 
    sys/powerpc/powerpc  trap.c 
    sys/sparc64/sparc64  trap.c 
    sys/sys              proc.h 
  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