diff options
-rw-r--r-- | drivers/scsi/qla2xxx/qla_def.h | 12 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_dfs.c | 15 |
2 files changed, 27 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 9d1d3dcf1c87..8228dfac6a31 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h | |||
@@ -3108,6 +3108,16 @@ struct qla_chip_state_84xx { | |||
3108 | uint32_t gold_fw_version; | 3108 | uint32_t gold_fw_version; |
3109 | }; | 3109 | }; |
3110 | 3110 | ||
3111 | struct qla_dif_statistics { | ||
3112 | uint64_t dif_input_bytes; | ||
3113 | uint64_t dif_output_bytes; | ||
3114 | uint64_t dif_input_requests; | ||
3115 | uint64_t dif_output_requests; | ||
3116 | uint32_t dif_guard_err; | ||
3117 | uint32_t dif_ref_tag_err; | ||
3118 | uint32_t dif_app_tag_err; | ||
3119 | }; | ||
3120 | |||
3111 | struct qla_statistics { | 3121 | struct qla_statistics { |
3112 | uint32_t total_isp_aborts; | 3122 | uint32_t total_isp_aborts; |
3113 | uint64_t input_bytes; | 3123 | uint64_t input_bytes; |
@@ -3120,6 +3130,8 @@ struct qla_statistics { | |||
3120 | uint32_t stat_max_pend_cmds; | 3130 | uint32_t stat_max_pend_cmds; |
3121 | uint32_t stat_max_qfull_cmds_alloc; | 3131 | uint32_t stat_max_qfull_cmds_alloc; |
3122 | uint32_t stat_max_qfull_cmds_dropped; | 3132 | uint32_t stat_max_qfull_cmds_dropped; |
3133 | |||
3134 | struct qla_dif_statistics qla_dif_stats; | ||
3123 | }; | 3135 | }; |
3124 | 3136 | ||
3125 | struct bidi_statistics { | 3137 | struct bidi_statistics { |
diff --git a/drivers/scsi/qla2xxx/qla_dfs.c b/drivers/scsi/qla2xxx/qla_dfs.c index b48cce696bac..3b35905619b0 100644 --- a/drivers/scsi/qla2xxx/qla_dfs.c +++ b/drivers/scsi/qla2xxx/qla_dfs.c | |||
@@ -114,6 +114,21 @@ qla_dfs_tgt_counters_show(struct seq_file *s, void *unused) | |||
114 | seq_printf(s, "num Q full sent = %lld\n", | 114 | seq_printf(s, "num Q full sent = %lld\n", |
115 | vha->tgt_counters.num_q_full_sent); | 115 | vha->tgt_counters.num_q_full_sent); |
116 | 116 | ||
117 | /* DIF stats */ | ||
118 | seq_printf(s, "DIF Inp Bytes = %lld\n", | ||
119 | vha->qla_stats.qla_dif_stats.dif_input_bytes); | ||
120 | seq_printf(s, "DIF Outp Bytes = %lld\n", | ||
121 | vha->qla_stats.qla_dif_stats.dif_output_bytes); | ||
122 | seq_printf(s, "DIF Inp Req = %lld\n", | ||
123 | vha->qla_stats.qla_dif_stats.dif_input_requests); | ||
124 | seq_printf(s, "DIF Outp Req = %lld\n", | ||
125 | vha->qla_stats.qla_dif_stats.dif_output_requests); | ||
126 | seq_printf(s, "DIF Guard err = %d\n", | ||
127 | vha->qla_stats.qla_dif_stats.dif_guard_err); | ||
128 | seq_printf(s, "DIF Ref tag err = %d\n", | ||
129 | vha->qla_stats.qla_dif_stats.dif_ref_tag_err); | ||
130 | seq_printf(s, "DIF App tag err = %d\n", | ||
131 | vha->qla_stats.qla_dif_stats.dif_app_tag_err); | ||
117 | return 0; | 132 | return 0; |
118 | } | 133 | } |
119 | 134 | ||