OpenAFS CVS Commit: openafs/src/WINNT/afsd by jaltman

cvs@GRAND.CENTRAL.ORG cvs@GRAND.CENTRAL.ORG
Thu, 18 Jun 2009 23:11:22 EDT


Update of /cvs/openafs/src/WINNT/afsd
In directory GRAND.CENTRAL.ORG:/home/jaltman/openafs/cvs-1-5/src/WINNT/afsd

Modified Files:
      Tag: openafs-devel-1_5_x
	cm_buf.c 
Log Message:
DELTA DEVEL15-windows-buf-infinite-looping-on-dirty-buffers-20090607
AUTHOR jaltman@secure-endpoints.com
LICENSE MIT

If there are dirty buffers when the file server becomes unresponsive,
the cache manager will attempt to write them repeatedly resulting in
use of 100% of the cpu of the machine until the file server becomes
responsive.

This patch reduces the cpu utilization by ensuring that only the first
in a list of buffers on the same file needs to fail with timed out,
all down, all busy, all offline, or clock skew.  The other dirty buffers
will just be skipped.  A small delay is enforced in the buf_IncrSync
thread between invocation.

This patch is not a complete fix for the problem.  The buf_IncrSync
thread needs to become more intelligent in order to avoid attempts to
write to volumes that are known to be inaccessible.


--- DELTA config for openafs-devel-1_5_x follows ---
DEVEL15-windows-buf-infinite-looping-on-dirty-buffers-20090607 openafs/src/WINNT/afsd/cm_buf.c 1.31.2.48 1.31.2.49