diff options
author | Jan Glauber <jang@linux.vnet.ibm.com> | 2008-12-25 07:38:44 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-12-25 07:38:58 -0500 |
commit | 23589d057ac2da81e456d4a9dcdd9135fd96f493 (patch) | |
tree | 756fb6034f953689100ad0d9efaa90565295ebf5 /drivers/s390/cio/qdio_main.c | |
parent | bbd50e172f75b1d12ef9b1bcf593b51a44199016 (diff) |
[S390] qdio: add eqbs/sqbs instruction counters
Add counters for the eqbs and sqbs instructions that indicate how often
we issued the instructions and how often the instructions returned with
less buffers than specified.
Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/qdio_main.c')
-rw-r--r-- | drivers/s390/cio/qdio_main.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 7572a0057623..a44a8c5b91be 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c | |||
@@ -129,6 +129,7 @@ static int qdio_do_eqbs(struct qdio_q *q, unsigned char *state, | |||
129 | char dbf_text[15]; | 129 | char dbf_text[15]; |
130 | 130 | ||
131 | BUG_ON(!q->irq_ptr->sch_token); | 131 | BUG_ON(!q->irq_ptr->sch_token); |
132 | qdio_perf_stat_inc(&perf_stats.debug_eqbs_all); | ||
132 | 133 | ||
133 | if (!q->is_input_q) | 134 | if (!q->is_input_q) |
134 | nr += q->irq_ptr->nr_input_qs; | 135 | nr += q->irq_ptr->nr_input_qs; |
@@ -139,8 +140,10 @@ again: | |||
139 | /* At least one buffer was processed, return and extract the remaining | 140 | /* At least one buffer was processed, return and extract the remaining |
140 | * buffers later. | 141 | * buffers later. |
141 | */ | 142 | */ |
142 | if ((ccq == 96) && (count != tmp_count)) | 143 | if ((ccq == 96) && (count != tmp_count)) { |
144 | qdio_perf_stat_inc(&perf_stats.debug_eqbs_incomplete); | ||
143 | return (count - tmp_count); | 145 | return (count - tmp_count); |
146 | } | ||
144 | if (rc == 1) { | 147 | if (rc == 1) { |
145 | QDIO_DBF_TEXT5(1, trace, "eqAGAIN"); | 148 | QDIO_DBF_TEXT5(1, trace, "eqAGAIN"); |
146 | goto again; | 149 | goto again; |
@@ -179,6 +182,7 @@ static int qdio_do_sqbs(struct qdio_q *q, unsigned char state, int start, | |||
179 | char dbf_text[15]; | 182 | char dbf_text[15]; |
180 | 183 | ||
181 | BUG_ON(!q->irq_ptr->sch_token); | 184 | BUG_ON(!q->irq_ptr->sch_token); |
185 | qdio_perf_stat_inc(&perf_stats.debug_sqbs_all); | ||
182 | 186 | ||
183 | if (!q->is_input_q) | 187 | if (!q->is_input_q) |
184 | nr += q->irq_ptr->nr_input_qs; | 188 | nr += q->irq_ptr->nr_input_qs; |
@@ -187,6 +191,7 @@ again: | |||
187 | rc = qdio_check_ccq(q, ccq); | 191 | rc = qdio_check_ccq(q, ccq); |
188 | if (rc == 1) { | 192 | if (rc == 1) { |
189 | QDIO_DBF_TEXT5(1, trace, "sqAGAIN"); | 193 | QDIO_DBF_TEXT5(1, trace, "sqAGAIN"); |
194 | qdio_perf_stat_inc(&perf_stats.debug_sqbs_incomplete); | ||
190 | goto again; | 195 | goto again; |
191 | } | 196 | } |
192 | if (rc < 0) { | 197 | if (rc < 0) { |