]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/scsi/st.h
st: implement tape statistics
[karo-tx-linux.git] / drivers / scsi / st.h
index f3eee0f9f40c01631ad3e62cab4d7c4c5c557f56..b6486b5d8681122759ae9bd3d5ca8e59542231a9 100644 (file)
@@ -92,6 +92,27 @@ struct st_partstat {
        int drv_file;
 };
 
+/* Tape statistics */
+struct scsi_tape_stats {
+       atomic64_t read_byte_cnt;  /* bytes read */
+       atomic64_t write_byte_cnt; /* bytes written */
+       atomic64_t in_flight;      /* Number of I/Os in flight */
+       atomic64_t read_cnt;       /* Count of read requests */
+       atomic64_t write_cnt;      /* Count of write requests */
+       atomic64_t other_cnt;      /* Count of other requests either
+                                   * implicit or from user space
+                                   * ioctl. */
+       atomic64_t resid_cnt;      /* Count of resid_len > 0 */
+       atomic64_t tot_read_time;  /* ktime spent completing reads */
+       atomic64_t tot_write_time; /* ktime spent completing writes */
+       atomic64_t tot_io_time;    /* ktime spent doing any I/O */
+       ktime_t read_time;         /* holds ktime request was queued */
+       ktime_t write_time;        /* holds ktime request was queued */
+       ktime_t other_time;        /* holds ktime request was queued */
+       atomic_t last_read_size;   /* Number of bytes issued for last read */
+       atomic_t last_write_size;  /* Number of bytes issued for last write */
+};
+
 #define ST_NBR_PARTITIONS 4
 
 /* The tape drive descriptor */
@@ -171,6 +192,7 @@ struct scsi_tape {
 #endif
        struct gendisk *disk;
        struct kref     kref;
+       struct scsi_tape_stats *stats;
 };
 
 /* Bit masks for use_pf */