cm_EndCallbackGrantingCall contained a race condition due to the release
of the cm_callbackLock in the middle of the for() loop. The race was
removed by optimizing out the call to cm_CallbackNotifyChange(). There
is no reason this needed to be called once per callback revoke in the
list.
FIXES 17805
here's a patch that reduces the overhead of transfers
between the local and global free packet queues. The old algorithm was
O(n) in the number of store instructions -- 7 per rx_packet. I've added
some bulk transfer macros to the rx_queue package. Now, the number of
store instructions is O(1) -- 6 total. This should help reduce bus
contention and cache line invalidates on SMPs.
provide daemon() if none exists. call it in bosserver and in afsd for afsdb handler
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
add the file, too
FIXES 17805
I've been stress testing a patch all weekend that changes the way
thread-local packet quotas are computed. I was able to replicate the
unbounded packet alloc problem on unix server components by eliminating my
code from rxi_StartServerProcs that sets the maximum number of expected
threads. This patch makes the upper thread limit get computed on the fly,
adds some thread-local free packet queue statistics, and a few other minor
tweaks. I still don't have a working windows development environment, so
I can't say whether this will fix all the windows client problems. But,
the unbounded packet allocation problem should go away with this patch.
stress testing on windows succeeds as well. <jaltman@secure-endpoints.com>
Fix IsAfsVnode and friends for OpenBSD and NetBSD.
Use "v" instead of "vc" for vnode args to macros (cosmetic only).
Redefine OpenBSD macros instead of using #ifdefs in afs_osi.h.
Add new hooks from "AfsdHook.dll" to the afsd_service.exe
AfsdInitHook - where you currently have one
AfsdRxStartedHook - after RxInit but before SmbInit
AfsdSmbStartedHook - after SmbInit
AfsdBkDaemonHook - called by the BkDaemon thread and is executed once per
cycle
AfsdStoppingHook - called just after a shutdown event has been
received but before any shutdown has been performed
AfsdStoppedHook - called just after all shutdown operations after
completed but before the service terminates
The type of the function is
BOOL ( APIENTRY * AfsdHook )(void)
in all cases. Returning FALSE will cause the service to shutdown.
FIXES 17805
Add a new function called rx_StartClientThread() which parallels the
behavior of rx_StartServer but is used for initializing client threads.
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
FIXES 17805
Add a new function called rx_StartClientThread() which parallels the
behavior of rx_StartServer but is used for initializing client threads.
Also, disable RX_TSFPQ_ENABLE for Windows as it slows the client down.