aboutsummaryrefslogtreecommitdiff
path: root/sys/cam/ctl/ctl_backend.h
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2014-12-06 20:39:25 +0000
committerAlexander Motin <mav@FreeBSD.org>2014-12-06 20:39:25 +0000
commitbfbfc4a3cbb69406ebcaa041326731048022e434 (patch)
treeaa8717b9be75a4e2f5efd46cb675324c4d61806b /sys/cam/ctl/ctl_backend.h
parentd59107f700c226ebf009c823dd4d72c7a23c6eed (diff)
downloadsrc-bfbfc4a3cbb69406ebcaa041326731048022e434.tar.gz
src-bfbfc4a3cbb69406ebcaa041326731048022e434.zip
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. MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=275568
Diffstat (limited to 'sys/cam/ctl/ctl_backend.h')
-rw-r--r--sys/cam/ctl/ctl_backend.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/cam/ctl/ctl_backend.h b/sys/cam/ctl/ctl_backend.h
index f32d1209bb93..77975f9ffea0 100644
--- a/sys/cam/ctl/ctl_backend.h
+++ b/sys/cam/ctl/ctl_backend.h
@@ -85,7 +85,8 @@ typedef enum {
CTL_LUN_FLAG_DEVID = 0x20,
CTL_LUN_FLAG_DEV_TYPE = 0x40,
CTL_LUN_FLAG_UNMAP = 0x80,
- CTL_LUN_FLAG_OFFLINE = 0x100
+ CTL_LUN_FLAG_OFFLINE = 0x100,
+ CTL_LUN_FLAG_SERSEQ_READ = 0x200
} ctl_backend_lun_flags;
#ifdef _KERNEL