Re: [PATCH] block: add missing block_bio_complete() tracepoint

From: Namhyung Kim
Date: Sun Jan 29 2012 - 20:44:44 EST


Hello,

2012-01-30 4:24 AM, Tejun Heo wrote:
On Sun, Jan 29, 2012 at 06:41:33 PM +0900, Namhyung Kim wrote:
The block_bio_complete() TP has been missed so long, so that bio-based
drivers haven't been able to trace its IO behavior. Add it.

In some rare cases, such as loop_switch, @bio->bi_bdev can be NULL.
Thus convert it to TRACE_EVENT_CONDITION() as Steven suggested.

From now on, request-based drivers will also get BLK_TA_COMPLETEs for
all bio's in requests. This needs to be handled in userland properly.

Also remove external use of the TP in DM and unexport it.

Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: dm-devel@xxxxxxxxxx

I like the smiplicity change but do we know how we can filter this out
from userland? Also, what's the reason not to do it from blktrace.c?
What would be the downside of doing that?

Thanks.


The userland tool cannot distinguish bounced bio from original one at completion TP, but it can expect there will be a duplicated BLK_TA_COMPLETE as it sees BLK_TA_BOUNCE for the bio before.

Filtering it out from kernel side seems to hide a real information that (paranoid?) user might want to get, and it looks like providing "polcy not mechanism" IMHO. That's why I changed my mind finally.

I cannot think of the downside, anyway it's not a big deal, if you think it's wrong choice, I'm OK to change it again.


Thanks,
Namhyung

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