/* error condition during a data transfer */
        unsigned int qdio_error;
 
+       /* last scan of the queue */
+       u64 timestamp;
+
        struct tasklet_struct tasklet;
        struct qdio_queue_perf_stat q_stats;
 
        return references_shared_dsci(i) || has_multiple_inq_on_dsci(i);
 }
 
+extern u64 last_ai_time;
+
 /* prototypes for thin interrupt */
 void qdio_setup_thinint(struct qdio_irq *irq_ptr);
 int qdio_establish_thinint(struct qdio_irq *irq_ptr);
 
        if (!q)
                return 0;
 
-       seq_printf(m, "DSCI: %d   nr_used: %d\n",
-                  *(u32 *)q->irq_ptr->dsci, atomic_read(&q->nr_buf_used));
-       seq_printf(m, "ftc: %d  last_move: %d\n",
+       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);
        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,
                           q->u.in.ack_count);
-               seq_printf(m, "IRQs disabled: %u\n",
+               seq_printf(m, "DSCI: %d   IRQs disabled: %u\n",
+                          *(u32 *)q->irq_ptr->dsci,
                           test_bit(QDIO_QUEUE_IRQS_DISABLED,
                           &q->u.in.queue_irq_state));
        }
 
        int count, stop;
        unsigned char state = 0;
 
+       q->timestamp = get_clock_fast();
+
        /*
         * Don't check 128 buffers, as otherwise qdio_inbound_q_moved
         * would return 0.
        int count, stop;
        unsigned char state = 0;
 
+       q->timestamp = get_clock_fast();
+
        if (need_siga_sync(q))
                if (((queue_type(q) != QDIO_IQDIO_QFMT) &&
                    !pci_out_supported(q)) ||