diff options
author | Matthew Ahrens <[email protected]> | 2018-05-31 10:29:12 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2018-06-13 11:05:06 -0700 |
commit | 1fac63e56f370f675b23687ee2e634744c54e818 (patch) | |
tree | 1655183ce851b290e08c0d191ac01aeb87e2caf1 /cmd | |
parent | 232dd8b956703bcc774524e78110d13de93dd5bd (diff) |
OpenZFS 9577 - remove zfs_dbuf_evict_key tsd
The zfs_dbuf_evict_key TSD (thread-specific data) is not necessary -
we can instead pass a flag down in a few places to prevent recursive
dbuf eviction. Making this change has 3 benefits:
1. The code semantics are easier to understand.
2. On Linux, performance is improved, because creating/removing
TSD values (by setting to NULL vs non-NULL) is expensive, and
we do it very often.
3. According to Nexenta, the current semantics can cause a
deadlock when concurrently calling dmu_objset_evict_dbufs()
(which is rare today, but they are working on a "parallel
unmount" change that triggers this more easily):
Porting Notes:
* Minor conflict with OpenZFS 9337 which has not yet been ported.
Authored by: Matthew Ahrens <[email protected]>
Reviewed by: George Wilson <[email protected]>
Reviewed by: Serapheim Dimitropoulos <[email protected]>
Reviewed by: Brad Lewis <[email protected]>
Reviewed-by: George Melikov <[email protected]>
Ported-by: Brian Behlendorf <[email protected]>
OpenZFS-issue: https://illumos.org/issues/9577
OpenZFS-commit: https://github.com/openzfs/openzfs/pull/645
External-issue: DLPX-58547
Closes #7602
Diffstat (limited to 'cmd')
0 files changed, 0 insertions, 0 deletions