Messages in this thread |  | | Date | Wed, 11 Jan 2012 10:08:17 -0800 | | From | Tejun Heo <> | | Subject | Re: [PATCH RESEND 9/9] block, trace: implement ioblame - IO tracer with origin tracking |
| |
On Tue, Jan 10, 2012 at 05:32:12PM -0800, 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.
One planned update is exporting issuer and dirtier separately. Currently dirtier, if exists, simply overrides issuer as it wasn't useful for in-kernel statistics anyway. With that gone, I think it makes much more sense to expose both of them.
Thanks.
-- tejun
|  |