]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r275568:
authormav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 18 Dec 2014 08:46:53 +0000 (08:46 +0000)
committermav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 18 Dec 2014 08:46:53 +0000 (08:46 +0000)
commitca28dde985bbd74bc93308aa214959fd6b187d66
tree5705cdc2dc3c9a3bbee29415657db6632ea342da
parent48fc860e9a34c06d3754e508713c686bf8c11c00
MFC r275568:
Count consecutive read requests as blocking in CTL for files and ZVOLs.

Technically read requests can be executed in any order or simultaneously
since they are not changing any data.  But ZFS prefetcher goes crasy when
it receives consecutive requests from different threads.  Since prefetcher
works on level of separate blocks, instead of two consecutive 128K requests
it may receive 32 8K requests in mixed order.

This patch is more workaround then a real fix, and it does not fix all of
prefetcher problems, but it improves sequential read speed by 3-4x times
in some configurations.  On the other side it may hurt performance if
some backing store has no prefetch, that is why it is disabled by default
for raw devices.

git-svn-id: svn://svn.freebsd.org/base/stable/10@275895 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/cam/ctl/ctl.c
sys/cam/ctl/ctl_backend.h
sys/cam/ctl/ctl_backend_block.c
sys/cam/ctl/ctl_private.h
sys/cam/ctl/ctl_ser_table.c
usr.sbin/ctladm/ctladm.8