aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnil Gurumurthy <anil.gurumurthy@cavium.com>2017-03-15 12:48:50 -0400
committerNicholas Bellinger <nab@linux-iscsi.org>2017-03-18 20:28:36 -0400
commit54b9993c8cf2d77c0f23be828a22e0817f742442 (patch)
tree12fb664ee9c6a8ca6288e2fbecdad575eb45216c
parentbe25152c0d9e236076323abbe9def9714234b761 (diff)
qla2xxx: Export DIF stats via debugfs
Signed-off-by: Anil Gurumurthy <anil.gurumurthy@cavium.com> Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
-rw-r--r--drivers/scsi/qla2xxx/qla_def.h12
-rw-r--r--drivers/scsi/qla2xxx/qla_dfs.c15
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
3111struct 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
3111struct qla_statistics { 3121struct 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
3125struct bidi_statistics { 3137struct 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