sadp on i386

Steve Nuchia steve at nuchat.UUCP
Mon Jan 15 04:55:51 AEST 1990


In article <7348 at cbnewsh.ATT.COM> dwc at cbnewsh.ATT.COM (Malaclypse the Elder) writes:
>in the original implementation.  since the driver could be sure
>that the I/O was completed in the order that the requests were
>submitted, it could use a simple queue to keep track of service
>times.  now that the controller can take a number of requests and
>schedule them in what it considers a good order, the driver would
>have to tag each request and timestamp it and then look at the time
>when that job finished.  its not difficult but its also not trivial

Interesting problem.  Howver, you can assume that the controller
is doing *something* as long as it has active requests, so all you
have to do is:

	maintain a count of outstanding requests, and a counter
	of requests serviced in a "session".

	A session begins when a requests is given to an idle
	controller -- set the request counter to 1 and the
	serviced counter to 0, and note the time.

	when a request is completed, decrement the request
	counter and increment the serviced counter.

	when the request counter drops to zero, divide the elapsed
	time by the serviced counter to get the average service time
	for the session.  Merge the average into your running average
	using the serviced counter as a weighting factor.
-- 
Steve Nuchia	      South Coast Computing Services      (713) 964-2462
"If the conjecture `You would rather I had not disturbed you
 by sending you this.' is correct, you may add it to the list of
 uncomfortable truths."   - Edsgar Dijkstra



More information about the Comp.unix.wizards mailing list