Skip to content

Commit

Permalink
[S390] qdio: add counter for input queue full condition
Browse files Browse the repository at this point in the history
Add a counter to the qdio performance statistics that indicates that no
free buffers were left in the input queue. If the counter gets increased
it means that the qdio adapter filled all available buffers and possibly
had more buffers ready but could not transmit them.

Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
  • Loading branch information
Jan Glauber authored and Martin Schwidefsky committed Dec 18, 2009
1 parent 7883097 commit 8bcd9b0
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 1 deletion.
3 changes: 2 additions & 1 deletion drivers/s390/cio/qdio_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,8 @@ static int get_inbound_buffer_frontier(struct qdio_q *q)
case SLSB_P_INPUT_PRIMED:
inbound_primed(q, count);
q->first_to_check = add_buf(q->first_to_check, count);
atomic_sub(count, &q->nr_buf_used);
if (atomic_sub(count, &q->nr_buf_used) == 0)
qdio_perf_stat_inc(&perf_stats.inbound_queue_full);
break;
case SLSB_P_INPUT_ERROR:
announce_buffer_error(q, count);
Expand Down
2 changes: 2 additions & 0 deletions drivers/s390/cio/qdio_perf.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ static int qdio_perf_proc_show(struct seq_file *m, void *v)
(long)atomic_long_read(&perf_stats.fast_requeue));
seq_printf(m, "Number of outbound target full condition\t: %li\n",
(long)atomic_long_read(&perf_stats.outbound_target_full));
seq_printf(m, "Number of inbound queue full condition\t\t: %li\n",
(long)atomic_long_read(&perf_stats.inbound_queue_full));
seq_printf(m, "Number of outbound tasklet mod_timer calls\t: %li\n",
(long)atomic_long_read(&perf_stats.debug_tl_out_timer));
seq_printf(m, "Number of stop polling calls\t\t\t: %li\n",
Expand Down
1 change: 1 addition & 0 deletions drivers/s390/cio/qdio_perf.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ struct qdio_perf_stats {
atomic_long_t outbound_handler;
atomic_long_t fast_requeue;
atomic_long_t outbound_target_full;
atomic_long_t inbound_queue_full;

/* for debugging */
atomic_long_t debug_tl_out_timer;
Expand Down

0 comments on commit 8bcd9b0

Please sign in to comment.