git://git.camperquake.de
/
zfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Illumos #3618 ::zio dcmd does not show timestamp data
[zfs.git]
/
module
/
zfs
/
vdev_queue.c
diff --git
a/module/zfs/vdev_queue.c
b/module/zfs/vdev_queue.c
index
3f2793b
..
b2cc6b8
100644
(file)
--- a/
module/zfs/vdev_queue.c
+++ b/
module/zfs/vdev_queue.c
@@
-44,8
+44,11
@@
int zfs_vdev_max_pending = 10;
int zfs_vdev_min_pending = 4;
int zfs_vdev_max_pending = 10;
int zfs_vdev_min_pending = 4;
-/* deadline = pri + ddi_get_lbolt64() >> time_shift) */
-int zfs_vdev_time_shift = 6;
+/*
+ * The deadlines are grouped into buckets based on zfs_vdev_time_shift:
+ * deadline = pri + gethrtime() >> time_shift)
+ */
+int zfs_vdev_time_shift = 29; /* each bucket is 0.537 seconds */
/* exponential I/O issue ramp-up rate */
int zfs_vdev_ramp_rate = 2;
/* exponential I/O issue ramp-up rate */
int zfs_vdev_ramp_rate = 2;
@@
-396,7
+399,7
@@
vdev_queue_io(zio_t *zio)
mutex_enter(&vq->vq_lock);
mutex_enter(&vq->vq_lock);
- zio->io_timestamp =
ddi_get_lbolt64
();
+ zio->io_timestamp =
gethrtime
();
zio->io_deadline = (zio->io_timestamp >> zfs_vdev_time_shift) +
zio->io_priority;
zio->io_deadline = (zio->io_timestamp >> zfs_vdev_time_shift) +
zio->io_priority;
@@
-430,8
+433,8
@@
vdev_queue_io_done(zio_t *zio)
avl_remove(&vq->vq_pending_tree, zio);
avl_remove(&vq->vq_pending_tree, zio);
- zio->io_delta =
ddi_get_lbolt64
() - zio->io_timestamp;
- vq->vq_io_complete_ts =
ddi_get_lbolt64
();
+ zio->io_delta =
gethrtime
() - zio->io_timestamp;
+ vq->vq_io_complete_ts =
gethrtime
();
vq->vq_io_delta_ts = vq->vq_io_complete_ts - zio->io_timestamp;
for (i = 0; i < zfs_vdev_ramp_rate; i++) {
vq->vq_io_delta_ts = vq->vq_io_complete_ts - zio->io_timestamp;
for (i = 0; i < zfs_vdev_ramp_rate; i++) {