diff options
author | mav <mav@FreeBSD.org> | 2012-06-09 13:07:44 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2012-06-09 13:07:44 +0000 |
commit | 478d881b5765624a1e00ba566d61121ab2c2888e (patch) | |
tree | 3d3277f183ec41c80d3113d0e2ab3435d883120e /sys/cam/cam_periph.h | |
parent | b1dc458d22eda63a1f015bcea5e4235cf78b847d (diff) | |
download | FreeBSD-src-478d881b5765624a1e00ba566d61121ab2c2888e.zip FreeBSD-src-478d881b5765624a1e00ba566d61121ab2c2888e.tar.gz |
One more major cam_periph_error() rewrite to improve error handling and
reporting. It includes:
- removing of error messages controlled by bootverbose, replacing them
with more universal and informative debugging on CAM_DEBUG_INFO level,
that is now built into the kernel by default;
- more close following to the arguments submitted by caller, such as
SF_PRINT_ALWAYS, SF_QUIET_IR and SF_NO_PRINT; consumer knows better which
errors are usual/expected at this point and which are really informative;
- adding two new flags SF_NO_RECOVERY and SF_NO_RETRY to allow caller
specify how much assistance it needs at this point; previously consumers
controlled that by not calling cam_periph_error() at all, but that made
behavior inconsistent and debugging complicated;
- tuning debug messages and taken actions order to make debugging output
more readable and cause-effect relationships visible;
- making camperiphdone() (common device recovery completion handler) to
also use cam_periph_error() in most cases, instead of own dumb code;
- removing manual sense fetching code from cam_periph_error(); I was told
by number of people that it is SIM obligation to fetch sense data, so this
code is useless and only significantly complicates recovery logic;
- making ada, da and pass driver to use cam_periph_error() with new limited
recovery options to handle error recovery and debugging in common way;
as one of results, CAM_REQUEUE_REQ and other retrying statuses are now
working fine with pass driver, that caused many problems before.
- reverting r186891 by raj@ to avoid burning few seconds in tight DELAY()
loops on device probe, while device simply loads media; I think that problem
may already be fixed in other way, and even if it is not, solution must be
different.
Sponsored by: iXsystems, Inc.
MFC after: 2 weeks
Diffstat (limited to 'sys/cam/cam_periph.h')
-rw-r--r-- | sys/cam/cam_periph.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/sys/cam/cam_periph.h b/sys/cam/cam_periph.h index 6c232ca..b51fb68 100644 --- a/sys/cam/cam_periph.h +++ b/sys/cam/cam_periph.h @@ -118,7 +118,6 @@ struct cam_periph { #define CAM_PERIPH_INVALID 0x08 #define CAM_PERIPH_NEW_DEV_FOUND 0x10 #define CAM_PERIPH_RECOVERY_INPROG 0x20 -#define CAM_PERIPH_SENSE_INPROG 0x40 #define CAM_PERIPH_FREE 0x80 u_int32_t immediate_priority; u_int32_t refcount; |