Re: [RFC] [Patch 4/4] lock contention tracking slimmed down

From: Martin Peschke
Date: Fri Jun 08 2007 - 13:14:28 EST


Peter Zijlstra wrote:
On Wed, 2007-06-06 at 23:34 +0200, Martin Peschke wrote:

+struct statistic_info lock_stat_info[_LOCK_STAT_NUMBER] = {
+ [LOCK_STAT_CONT] = {
+ .name = "contentions",
+ .x_unit = "instruction_pointer",
+ .y_unit = "occurrence",
+ .defaults = "type=sparse entries=4",
+ .flags = STATISTIC_FLAGS_LABEL,
+ },
+ [LOCK_STAT_WAIT_READ] = {
+ .name = "wait_read",
+ .x_unit = "nanoseconds",
+ .y_unit = "occurrence",
+ .defaults = "type=utilisation",
+ },
+ [LOCK_STAT_WAIT_WRITE] = {
+ .name = "wait_write",
+ .x_unit = "nanoseconds",
+ .y_unit = "occurrence",
+ .defaults = "type=utilisation",
+ },
+ [LOCK_STAT_HOLD_READ] = {
+ .name = "hold_read",
+ .x_unit = "nanoseconds",
+ .y_unit = "occurrence",
+ .defaults = "type=utilisation",
+ },
+ [LOCK_STAT_HOLD_WRITE] = {
+ .name = "hold_write",
+ .x_unit = "nanoseconds",
+ .y_unit = "occurrence",
+ .defaults = "type=utilisation",
}
};

You're parsing strings in-kernel to setup data structures?

Might be surprising (or revolting?)... but, yes, I do.

.defaults reflects the developers opinion on the way of data
accumululation that might make most sense in most cases.
The current implementation of lib/statistic.c allows users to change
setting that we see in .defaults. If one needs to track more than
4 contention points, for example, then they can change this limit by
passing "entries=4" to the user interface. So there is some parsing
code anyway. Passing default setting in a similar fashion has just been
convenient for the developer.

-
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/