]> git.michaelhowe.org Git - packages/o/openafs.git/commit
Rx: Do not hold call lock across memcpy in rx_ReadProc/rx_WriteProc
authorJeffrey Altman <jaltman@your-file-system.com>
Mon, 20 Sep 2010 12:11:20 +0000 (05:11 -0700)
committerDerrick Brashear <shadow@dementia.org>
Mon, 27 Sep 2010 15:32:12 +0000 (08:32 -0700)
commite57578c1d4945c63eb63897e08b983aa596a55a1
tree8115d5f9c121eb54c2f30d3b8773ff9bab33f4d8
parent2373bef5cce4e93435174149a3e56067e4420b02
Rx: Do not hold call lock across memcpy in rx_ReadProc/rx_WriteProc

1.4.x does not hold the call lock across memcpy operations in
rx_ReadProc, rx_ReadProc32, rx_WriteProc, rx_WriteProc32.  The
claim is that the call curpos, curlen, and nLeft fields which
refer to the current packet being processed will not be touched
by any other thread.  Therefore it is safe to drop the call lock
to permit another thread to add packets to the call while the memcpy
is performed in parallel.

This patchset continues to hold the call lock longer than the
original implementation but does drop it for the length of time
it takes to copy data from the packet buffer to the application
buffer.

Change-Id: I87dacdf541ba50db80ab55e500b38edab5126dc2
Reviewed-on: http://gerrit.openafs.org/2817
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit e197c19cedaafa0d2bb59212fb171083f2140041)
Reviewed-on: http://gerrit.openafs.org/2822
src/rx/rx_rdwr.c