mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 19:26:25 +00:00
[S390] qdio: add counter for input queue full condition
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>
This commit is contained in:
parent
7883097f16
commit
8bcd9b04fd
3 changed files with 5 additions and 1 deletions
|
@ -486,7 +486,8 @@ static int get_inbound_buffer_frontier(struct qdio_q *q)
|
||||||
case SLSB_P_INPUT_PRIMED:
|
case SLSB_P_INPUT_PRIMED:
|
||||||
inbound_primed(q, count);
|
inbound_primed(q, count);
|
||||||
q->first_to_check = add_buf(q->first_to_check, 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;
|
break;
|
||||||
case SLSB_P_INPUT_ERROR:
|
case SLSB_P_INPUT_ERROR:
|
||||||
announce_buffer_error(q, count);
|
announce_buffer_error(q, count);
|
||||||
|
|
|
@ -64,6 +64,8 @@ static int qdio_perf_proc_show(struct seq_file *m, void *v)
|
||||||
(long)atomic_long_read(&perf_stats.fast_requeue));
|
(long)atomic_long_read(&perf_stats.fast_requeue));
|
||||||
seq_printf(m, "Number of outbound target full condition\t: %li\n",
|
seq_printf(m, "Number of outbound target full condition\t: %li\n",
|
||||||
(long)atomic_long_read(&perf_stats.outbound_target_full));
|
(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",
|
seq_printf(m, "Number of outbound tasklet mod_timer calls\t: %li\n",
|
||||||
(long)atomic_long_read(&perf_stats.debug_tl_out_timer));
|
(long)atomic_long_read(&perf_stats.debug_tl_out_timer));
|
||||||
seq_printf(m, "Number of stop polling calls\t\t\t: %li\n",
|
seq_printf(m, "Number of stop polling calls\t\t\t: %li\n",
|
||||||
|
|
|
@ -36,6 +36,7 @@ struct qdio_perf_stats {
|
||||||
atomic_long_t outbound_handler;
|
atomic_long_t outbound_handler;
|
||||||
atomic_long_t fast_requeue;
|
atomic_long_t fast_requeue;
|
||||||
atomic_long_t outbound_target_full;
|
atomic_long_t outbound_target_full;
|
||||||
|
atomic_long_t inbound_queue_full;
|
||||||
|
|
||||||
/* for debugging */
|
/* for debugging */
|
||||||
atomic_long_t debug_tl_out_timer;
|
atomic_long_t debug_tl_out_timer;
|
||||||
|
|
Loading…
Reference in a new issue