Page MenuHomeFreeBSD

cam/da: Allow read-retry to be disabled
Needs ReviewPublic

Authored by imp on Tue, Feb 4, 6:38 PM.

Details

Reviewers
mav
ken
Group Reviewers
cam
Summary

These days, read commands are tried very hard in the drive, so retrying
is usually futile. Add the ability to turn it off for reads to improve
read latency on failing media. However, this leaves the retries for
other commands in place, which also can be good for WRITE errors. So we
have three configurations: Default: we do 5 retires for read or writes
(or anything else). This turned on 5 retries for writes, but none for
READs. And setting retries to 0 (no retries for anything).

Normally, this would enabled by default. However, it's not 100%. There's
times people's data is so precious they want retry by default. Also,
some HBAs consume a retry for congested situations improperly (because
the alternative is to never fail in some fairly rare congestions in with
expanders). But for the most part turning it on helps a lot on reducing
latency for recovery situations.

Sponsored by: Netflix

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 62253
Build 59137: arc lint + arc unit

Event Timeline

Note: There's no good interface for this. I was thinking of having a global tunable kern.cam.da.no_read_retry and a similar per-drive sysctl/tunable.