diff options
author | mckusick <mckusick@FreeBSD.org> | 2002-10-16 00:19:23 +0000 |
---|---|---|
committer | mckusick <mckusick@FreeBSD.org> | 2002-10-16 00:19:23 +0000 |
commit | 733bfbdd78ddb9efc129532b2c2239d0bacfaf1a (patch) | |
tree | 5d6f505356bd87f3a4e8865b988516fd66137c61 /sys/netinet/tcp_syncache.c | |
parent | 4cf0d794211b208cf47ace3a4fa89b73d19f5d43 (diff) | |
download | FreeBSD-src-733bfbdd78ddb9efc129532b2c2239d0bacfaf1a.zip FreeBSD-src-733bfbdd78ddb9efc129532b2c2239d0bacfaf1a.tar.gz |
Change locking so that all snapshots on a particular filesystem share
a common lock. This change avoids a deadlock between snapshots when
separate requests cause them to deadlock checking each other for a
need to copy blocks that are close enough together that they fall
into the same indirect block. Although I had anticipated a slowdown
from contention for the single lock, my filesystem benchmarks show
no measurable change in throughput on a uniprocessor system with
three active snapshots. I conjecture that this result is because
every copy-on-write fault must check all the active snapshots, so
the process was inherently serial already. This change removes the
last of the deadlocks of which I am aware in snapshots.
Sponsored by: DARPA & NAI Labs.
Diffstat (limited to 'sys/netinet/tcp_syncache.c')
0 files changed, 0 insertions, 0 deletions