On Fri, May 29, 2009 at 08:50:10PM +0100, Steven Whitehouse wrote: > > This is extremly inefficient. We'd be much better off just storing > > the dev_t and introducing a __trace_bdevname to expand a bdevname > > into the tracer buffer. It's been on my todo list for a while and > > I'll look into it next week unless you beat me to it. > > > Ok. I wasn't sure how efficient bdevname() was vs. copying the name > around, but that sounds like a good plan if its not too expensive an > operation.
Ok, I finally started looking into and it's not that easy. bdevname actually requires a struct block_device * which we can't safely store and __bdevname is just an obsfucated way to print major and minor. I'd still hate copying the whole device name as it's rather inefficient, on the other hand it's quite a bit nicer than the raw major/minor output. At this point I think I would prefer the raw manjor/minor output as done in the block trace even patches. But what I think is most important is that we all (block trace events, all filesystem trace events (current xfs + gfs2 + ext4, and possibly vfs/vm trace points) agree on one single format so that we can do global filtering over all of them.