;;; -*- Mode:LISP; Package:USER; Base:10; Readtable:CL -*-

(defun reset-disk-meters ()
  (without-interrupts 
    (dotimes (i 2)
      (si:write-meter 'si:%disk-wait-time 0)
      (si:write-meter 'si:%count-disk-page-read-operations 0)
      (si:write-meter 'si:%count-disk-page-write-operations 0))))

(defun disk-latency ()
  (let ((read-ops (si:read-meter 'si:%count-disk-page-read-operations))
	(write-ops (si:read-meter 'si:%count-disk-page-write-operations))
	(wait (si:read-meter 'si:%disk-wait-time)))
    (format t "~&~d reads, ~d writes, ~d microseconds" read-ops write-ops wait)
    (format t "~&~d milliseconds per op" (float (/ (/ wait (+ read-ops write-ops)) 1000.)))))
