sadp on i386

Malaclypse the Elder dwc at cbnewsh.ATT.COM
Sun Jan 14 12:22:55 AEST 1990


In article <1583 at aber-cs.UUCP>, pcg at aber-cs.UUCP (Piercarlo Grandi) writes:
> In article <7088 at cbnewsh.ATT.COM> dwc at cbnewsh.ATT.COM (Malaclypse the Elder) writes:
>     
>     i guess the problem is that as disk controllers got more
>     intelligent, much of the statistics that were collected
>     by the kernel couldn't be directly measured.  the result
>     is the implementers chose not to provide any measurements.
> 
> No. Most discs out there use very simple controllers, and even
> SCSI controllers could be profiled easily by using block
> numbers.
> 
> The real reasons why sadp is not supported are, in order of
> importance:
> 
> 	1) most system administrators would not use it, because
> 	they are lazy or not competent enough.
> 
> 	2) adding statiistics collection to a driver is an
> 	extra job to do; if the customer does not ask for it,
> 	it will be omitted.
> 
> 	3) In some cases statistics collection requires a table
> 	whose size is combinatorial in the number of drives.
> 
> Point #3 is easy to obviate if statistics collection can be
> disabled at system generation time. Points #1 and #3 are the
> really important ones.

i'm not one to insist on what the "real" reasons are, but i'm
sure that the diligence or competence of system administrators
is not what goes through the mind of a driver writer.  in fact,
assuming that system administrators are the only people who will
this data is a mistake.  i do believe that it has to do with the
difficulty of keeping the statistics in the driver.

to understand the statement from my original posting, you have to
understand how such things as average service time was computed
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
in terms of overhead.  and every driver would have to have its own
method of keeping track of its I/Os.

that is why i asked about whether controllers now provide that info.
there should be a well defined interface to get performance data in
the same way that there is a well defined interface to get disk data.
it would make things alot easier.

danny chen
att!hocus!dwc



More information about the Comp.unix.wizards mailing list