HomeFreeBSD

Write issue taskq shouldn't be dynamic

Description

Write issue taskq shouldn't be dynamic

This is as much an upstream compatibility as it's a bit of a performance
gain.

The illumos taskq implemention doesn't allow a TASKQ_THREADS_CPU_PCT type
to be dynamic and in fact enforces as much with an ASSERT.

As to performance, if this taskq is dynamic, it can cause excessive
contention on tq_lock as the threads are created and destroyed because it
can see bursts of many thousands of tasks in a short time, particularly
in heavy high-concurrency zvol write workloads.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tim Chase <tim@chase2k.com>
Closes #5236

Details

Provenance
Tim Chase <tim@chase2k.com>Authored on Oct 10 2016, 10:19 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Oct 10 2016, 10:19 PM
Parents
rG57f16600b981: Porting over some ICP code that was missed in #4760
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rGd33931a83a33: Write issue taskq shouldn't be dynamic (authored by Tim Chase <tim@chase2k.com>).Oct 10 2016, 10:19 PM