Execute last ZIO of log commit synchronously.
authormav <mav@FreeBSD.org>
Thu, 2 Mar 2017 07:55:47 +0000 (07:55 +0000)
committermav <mav@FreeBSD.org>
Thu, 2 Mar 2017 07:55:47 +0000 (07:55 +0000)
commitaa7ab7b7d4706f9f073f8ab53edfd974de707667
tree0ca60c6973452c7aa14421b71bc8809c526ff80e
parent3ef0c861a50bb5b6a57c4b03c4e36526283d7cd4
Execute last ZIO of log commit synchronously.

For short transactions overhead of context switch can be too large.
Skipping it gives significant latency reduction.  For large ones,
including multiple ZIOs, latency is less critical, while throughput
there may become limited by checksumming speed of single CPU core.
To get best of both cases, execute last ZIO directly from calling
thread context to save latency, while all others (if there are any)
enqueue to taskqueues in traditional way.

MFC after: 2 weeks
Sponsored by: iXsystems, Inc.
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c