freebsd-skq/sys/cddl
Alexander Motin d6245e3d44 Allow skipping dmu_buf_will_dirty() call in dsl_dir_transfer_space().
dsl_dir_transfer_space() is mostly called after dsl_dir_diduse_space(),
which already calls dmu_buf_will_dirty() for the same dbuf and tx, so
its duplicate call in those cases will change nothing, only spend time.

Skipping this call by four times reduces time spent in dbuf_write_done()
and descendants, updating dataset statistics with several congested lock
acquisitions.  When rewriting 8K zvol blocks at 1GB/s rate, this reduces
CPU time spent inside dbuf_write_done(), according to profiling, from 45%
of 683K samples to 18% of 422K.

MFC after:	2 weeks
2015-01-20 13:09:12 +00:00
..
boot/zfs MFV r274273: 2014-11-10 08:20:21 +00:00
compat/opensolaris remove opensolaris cyclic code, replace with high-precision callouts 2014-12-07 11:21:41 +00:00
contrib/opensolaris Allow skipping dmu_buf_will_dirty() call in dsl_dir_transfer_space(). 2015-01-20 13:09:12 +00:00
dev Mechanically convert cddl sun #ifdef's to illumos 2015-01-17 14:44:59 +00:00