HomeFreeBSD

The abd child/parent relationship does not need to be tracked

Description

The abd child/parent relationship does not need to be tracked

ABD's currently track their parent/child relationship. This applies to
abd_get_offset() and abd_borrow_buf(). However, nothing depends on
knowing this relationship, it's only used for consistency checks to
verify that we are not destroying an ABD that's still in use. When we
are creating/destroying ABD's frequently, the performance impact of
maintaining these data structures (in particular the atomic
increment/decrement operations) can be measurable.

This commit removes this verification code on production builds, but
keeps it when ZFS_DEBUG is set.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Brian Atkinson <batkinson@lanl.gov>
Signed-off-by: Matthew Ahrens <mahrens@delphix.com>
Closes #11535

Details

Provenance
mahrensAuthored on Jan 30 2021, 6:04 PM
GitHub <noreply@github.com>Committed on Jan 30 2021, 6:04 PM
Parents
rGcf0a6dd3ede9: Added extra check to replace Faulted VDEV with Distributed Spare
Branches
Unknown
Tags
Unknown