|author||Alexander Motin <mav@FreeBSD.org>||2015-08-12 22:36:02 +0000|
|committer||Alexander Motin <mav@FreeBSD.org>||2015-08-12 22:36:02 +0000|
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin= Reviewed by: Prakash Surya <firstname.lastname@example.org> Reviewed by: Matthew Ahrens <email@example.com> Author: Paul Dagnelie <firstname.lastname@example.org> While running 'zfs recv' we noticed that every 128th 8K block required a read. We were seeing that restore_write() was calling dmu_tx_hold_write() and the indirect block was not cached. We should prefetch upcoming indirect blocks to avoid having to go to disk and blocking the restore_write().
Notes: svn path=/vendor-sys/illumos/dist/; revision=286704
Diffstat (limited to 'uts/common/fs/zfs/dmu_object.c')
1 files changed, 5 insertions, 0 deletions
diff --git a/uts/common/fs/zfs/dmu_object.c b/uts/common/fs/zfs/dmu_object.c
index 808864a57607..6ca021eecb1d 100644
@@ -148,6 +148,11 @@ dmu_object_free(objset_t *os, uint64_t object, dmu_tx_t *tx)
+ * Return (in *objectp) the next object which is allocated (or a hole)
+ * after *object, taking into account only objects that may have been modified
+ * after the specified txg.
dmu_object_next(objset_t *os, uint64_t *objectp, boolean_t hole, uint64_t txg)