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

Thu, 28 Jun 2007 00:05:20 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
	afsd_service.c cm_callback.c cm_callback.h cm_scache.c 
	cm_scache.h cm_server.c cm_server.h 
Log Message:
DELTA DEVEL15-windows-give-up-callbacks-20070627

This large patch adds support for giving up callbacks in response to three

 1. power management suspend

 2. power management shutdown

 3. stat cache object recycling

The third item is submitted as a condition compilation if GIVE_UP_CALLBACKS
is defined.  Properly handing callback give ups and the associated race
conditions with revokes and fetch status requests requires a great deal of
over head.  The first attempt used one GiveUpCallBacks RPC for each callback
that was being dropped as the stat cache object was recycled.  This resulted
in a 27% performance drop in the MIT stress test.  The code that is being
committed maintains a callback give up list on each server object.  The
callback is added to the list as the callbacks are dropped and then they
are sent to the server in bulk by the background daemon thread if the
server is known to be UP after a ping.  Logic is added to the
EndCallbackRequest and CallbackRevoke operations to ensure that race
conditions are addressed.  With all of this, there is a 17% performance drop
in the MIT stress test.

As a result, it is my conclusion that the client side costs associated with
optimizing the load on the server are simply too high.  I am committing this
code to ensure that it is not lost.  I will remove this support in the next
patch while leaving the support for giving up all callbacks in response
to suspend and shutdown events.

--- DELTA config for openafs-devel-1_5_x follows ---
DEVEL15-windows-give-up-callbacks-20070627 openafs/src/WINNT/afsd/afsd_service.c
DEVEL15-windows-give-up-callbacks-20070627 openafs/src/WINNT/afsd/cm_callback.c
DEVEL15-windows-give-up-callbacks-20070627 openafs/src/WINNT/afsd/cm_callback.h 1.7
DEVEL15-windows-give-up-callbacks-20070627 openafs/src/WINNT/afsd/cm_scache.c
DEVEL15-windows-give-up-callbacks-20070627 openafs/src/WINNT/afsd/cm_scache.h
DEVEL15-windows-give-up-callbacks-20070627 openafs/src/WINNT/afsd/cm_server.c
DEVEL15-windows-give-up-callbacks-20070627 openafs/src/WINNT/afsd/cm_server.h