summaryrefslogtreecommitdiffstats
path: root/module/.gitignore
diff options
context:
space:
mode:
authorAlexander Motin <[email protected]>2019-06-13 16:08:24 -0400
committerBrian Behlendorf <[email protected]>2019-06-13 13:08:24 -0700
commitae5c78e0b13ffeabf1c49a27d3f42a95aa9a678d (patch)
tree70611767356fcfda7dff236e488a376eaafc05dd /module/.gitignore
parentd3230d761ac6234ad20c815f0512a7489f949dad (diff)
Move write aggregation memory copy out of vq_lock
Memory copy is too heavy operation to do under the congested lock. Moving it out reduces congestion by many times to almost invisible. Since the original zio removed from the queue, and the child zio is not executed yet, I don't see why would the copy need protection. My guess it just remained like this from the time when lock was not dropped here, which was added later to fix lock ordering issue. Multi-threaded sequential write tests with both HDD and SSD pools with ZVOL block sizes of 4KB, 16KB, 64KB and 128KB all show major reduction of lock congestion, saving from 15% to 35% of CPU time and increasing throughput from 10% to 40%. Reviewed-by: Richard Yao <[email protected]> Reviewed-by: Matt Ahrens <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Alexander Motin <[email protected]> Closes #8890
Diffstat (limited to 'module/.gitignore')
0 files changed, 0 insertions, 0 deletions