OSDN Git Service

[S390] qdio: outbound queue full counter
authorJan Glauber <jang@linux.vnet.ibm.com>
Wed, 5 Jan 2011 11:47:51 +0000 (12:47 +0100)
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>
Wed, 5 Jan 2011 11:47:28 +0000 (12:47 +0100)
Add a counter for outbound queue full events to the qdio statistics.

Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/cio/qdio.h
drivers/s390/cio/qdio_debug.c
drivers/s390/cio/qdio_main.c

index a77aa91..40ca0b9 100644 (file)
@@ -202,6 +202,7 @@ struct qdio_dev_perf_stat {
        unsigned int inbound_queue_full;
        unsigned int outbound_call;
        unsigned int outbound_handler;
+       unsigned int outbound_queue_full;
        unsigned int fast_requeue;
        unsigned int target_full;
        unsigned int eqbs;
index 28868e7..f8b03a6 100644 (file)
@@ -151,6 +151,7 @@ static char *qperf_names[] = {
        "Inbound queue full",
        "Outbound calls",
        "Outbound handler",
+       "Outbound queue full",
        "Outbound fast_requeue",
        "Outbound target_full",
        "QEBSM eqbs",
index 4c01099..af86875 100644 (file)
@@ -1447,6 +1447,9 @@ static int handle_outbound(struct qdio_q *q, unsigned int callflags,
        used = atomic_add_return(count, &q->nr_buf_used);
        BUG_ON(used > QDIO_MAX_BUFFERS_PER_Q);
 
+       if (used == QDIO_MAX_BUFFERS_PER_Q)
+               qperf_inc(q, outbound_queue_full);
+
        if (callflags & QDIO_FLAG_PCI_OUT) {
                q->u.out.pci_out_enabled = 1;
                qperf_inc(q, pci_request_int);