Re: [Patch 0/5] I/O statistics through request queues

From: Frank Ch. Eigler
Date: Thu Oct 26 2006 - 15:15:14 EST


HI -

On Thu, Oct 26, 2006 at 05:36:59PM +0200, Martin Peschke wrote:

> [...] I meant scaling with regard to lots of different keys. This
> is what you have described as "By 'rows'", isn't it?

Yes.

> For example, if I wanted to store a timestamp for each request
> issued, and there were lots of devices and the I/O was driving the
> system crazy - how would affect that lookup time?

If you have only hundreds or thousands of such requests on the go
at any given time, that's not a problem. Hash by pointer.

> [...] I would be done with that lookup table entry then. But it
> won't go away, will it? Is this an issue?

The entry can be instantly cleared for reuse by another future
key-value pair. Think of it like a mini slab cache.

> [...] Anyway, I think this discussion shows that any dynamically
> added client of kernel markers which needs to hold extra data for
> entities like requests might be difficult to be implemented
> efficiently (compared to static instrumentation), because markers,
> by nature, only allow for code additions, but not for additions to
> existing data structures.

It's a question that mixes quantitative and policy matters. It's
certainly *somewhat* slower to store data on the side, but whether in
the context of the event source that is okay or not Just Depends. On
the flip side, patching in hard-coded extra data storage for busy
structures also has a cost if the statistics gathering is not actually
requested by the end-user. (On the policy side, one must weigh to
what extent it's reasonable to pad more and more data structures, just
in case.)

- FChE
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/