HomeFreeBSD

Change locking so that all snapshots on a particular filesystem share
rS105191Unpublished

Unpublished Commit ยท Learn More

No further details are available.

Description

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.

Details

Provenance
mckusickAuthored on
Parents
rS105190: missed additional callout that can run w/o Giant locked
Branches
Unknown
Tags
Unknown

Event Timeline