Re: [patch 6/6] statistics infrastructure - exploitation: zfcp

Arjan van de Ven
2005-12-15T11:46:20Z

On Thu, 2005-12-15 at 12:23 +0100, Martin Peschke wrote:

> Given the idea of struct statistic, the lower layer driver could use a
> given pointer to an upper layer's struct statistic in order to call
> statistic_inc(stat, x).
>
> The lower layer driver could call an upper layer driver's function to
> have the upper layer update a statistic.

Why? it's an open source world, what you suggest is more something for a
"must hide behind interfaces" closed world ;)

if done right, the LLDD gets access to the transport class information,
including the array of stats, so the LLDD can update those just fine.
Just the API should be clear about who owns updating which field; a
comment will suffice for that ;)

> The lower layer driver could temporarily store some measurement data in
> the data structure passed between those two; the upper layer driver
> picks it up later and calls whatever statistic library routine is
> appropriate. Requires additional bytes and one store/retrieve operation
> more than the struct statistic idea.

way way too complex for no reason.

Remember the scsi layer is a layered concept, but also upside down: even
though the transport class layers on top of the LLDD, it's the LLDD that
drives that class, not the other way around. The same could be done with
selected statistics; have the transport layer do the exporting to sysfs
and all that stuff, but have the LLDD keep track of them. (of course
only for those that are relevant in this sense; if the transport class
is the natural place to update, then it should be done there)