zdb should disable reference tracking
When evicting from the ARC, we manipulate some refcount_t's, e.g. arcs_size. When using zdb to examine a large amount of data (e.g. zdb -bb on a large pool with small blocks), the ARC may have a large number of entries. If reference tracking is enabled, there will be ~1 reference for each block in the ARC. When evicting, we decrement the refcount and have to search all the references to find the one that we are removing, which is very slow.
Since zdb is typically used to find problems with the on-disk format, and not with the code it is running, we should disable reference tracking in zdb.
Updated by Electric Monk about 3 years ago
- % Done changed from 0 to 100
- Status changed from New to Closed
commit 4dd77f9e38ef05b39db128ff7608d926fd3218c6 Author: Matthew Ahrens <email@example.com> Date: 2016-11-18T19:19:49.000Z 7545 zdb should disable reference tracking Reviewed by: Dan Kimmel <firstname.lastname@example.org> Reviewed by: Steve Gonczi <email@example.com> Reviewed by: George Wilson <firstname.lastname@example.org> Approved by: Robert Mustacchi <email@example.com>