s390/qdio: eliminate queue's last_move cursor
authorJulian Wiedmann <jwi@linux.ibm.com>
Thu, 28 Mar 2019 09:45:11 +0000 (10:45 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 10 Apr 2019 15:47:26 +0000 (17:47 +0200)
This cursor is used for debugging only. But since
commit "s390/qdio: pass up count of ready-to-process SBALs" it effectively
duplicates the first_to_check cursor, diverging for just a short moment
when get_*_buffer_frontier() updates q->first_to_check.

Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Reviewed-by: Jens Remus <jremus@linux.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 2c29141..a069443 100644 (file)
@@ -228,9 +228,6 @@ struct qdio_q {
         */
        int first_to_check;
 
-       /* first_to_check of the last time */
-       int last_move;
-
        /* beginning position for calling the program */
        int first_to_kick;
 
index 4d77d87..35410e6 100644 (file)
@@ -121,9 +121,8 @@ static int qstat_show(struct seq_file *m, void *v)
 
        seq_printf(m, "Timestamp: %Lx  Last AI: %Lx\n",
                   q->timestamp, last_ai_time);
-       seq_printf(m, "nr_used: %d  ftc: %d  last_move: %d\n",
-                  atomic_read(&q->nr_buf_used),
-                  q->first_to_check, q->last_move);
+       seq_printf(m, "nr_used: %d  ftc: %d\n",
+                  atomic_read(&q->nr_buf_used), q->first_to_check);
        if (q->is_input_q) {
                seq_printf(m, "polling: %d  ack start: %d  ack count: %d\n",
                           q->u.in.polling, q->u.in.ack_start,
index b6bc02e..0ccd3b3 100644 (file)
@@ -551,11 +551,8 @@ static int qdio_inbound_q_moved(struct qdio_q *q)
 
        count = get_inbound_buffer_frontier(q);
 
-       if (count) {
-               q->last_move = q->first_to_check;
-               if (!is_thinint_irq(q->irq_ptr) && MACHINE_IS_LPAR)
-                       q->u.in.timestamp = get_tod_clock();
-       }
+       if (count && !is_thinint_irq(q->irq_ptr) && MACHINE_IS_LPAR)
+               q->u.in.timestamp = get_tod_clock();
 
        return count;
 }
@@ -780,10 +777,8 @@ static inline int qdio_outbound_q_moved(struct qdio_q *q)
 
        count = get_outbound_buffer_frontier(q);
 
-       if (count) {
-               q->last_move = q->first_to_check;
+       if (count)
                DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "out moved:%1d", q->nr);
-       }
 
        return count;
 }