Re: [PATCH RESEND 9/9] block, trace: implement ioblame - IO tracerwith origin tracking

From: Namhyung Kim
Date: Wed Jan 11 2012 - 01:16:10 EST


2012-01-11 10:32 AM, Tejun Heo wrote:
Implement ioblame, which can attribute each IO to its origin and
export the information using a tracepoint.

Operations which may eventually cause IOs and IO operations themselves
are identified and tracked primarily by their stack traces along with
the task and the target file (dev:ino:gen). On each IO completion,
ioblame knows why that specific IO happened and exports the
information via ioblame:ioblame_io tracepoint.

While ioblame adds fields to a few fs and block layer objects, all
logic is well insulated inside ioblame proper and all hooking goes
through well defined tracepoints and doesn't add any significant
maintenance overhead.

For details, please read Documentation/trace/ioblame.txt.

-v2: Namhyung pointed out that all the information available at IO
completion can be exported via tracepoint and letting userland do
whatever it wants to do with that would be better. Stripped out
in-kernel statistics gathering.

Now that everything is exported through tracepoint, iolog and
counters_pipe[_pipe] are unnecessary. Removed. intents_bin too
is removed.

As data collection no longer requires polling, ioblame/intents is
updated to generate inotify IN_MODIFY event after a new intent is
created.


Hi Tejun,

How about adding another tracepoint for intent creation to provide raw data as well, somewhere in iob_get_intent() or iob_intent_create() maybe? It can be useful to get those data for further processing IMHO.

Thanks,
Namhyung Kim
--
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/