On Sun, 2010-05-30 at 11:10 +0300, Avi Kivity wrote: > On 05/29/2010 04:19 PM, Steven Rostedt wrote: > > > The pretty printing from the kernel handles this fine. But there's > > pressure to pass the format to userspace in binary and have the tool > > parse it. Currently it uses the print fmt to figure out how to parse. > > > > Using one of the examples that Stefan showed: > > > > kvmmmu/kvm_mmu_get_page: print fmt: "%s %s", ({ const char *ret = > > p->buffer + p->len; static const char *access_str[] = { "---", "--x", > > "w--", "w-x", "-u-", "-ux", "wu-", "wux" }; union kvm_mmu_page_role > > role; role.word = REC->role; trace_seq_printf(p, "sp gfn %llx %u%s q%u%s > > %s%s" " %snxe root %u %s%c", REC->gfn, role.level, role.cr4_pae ? " > > pae" : "", role.quadrant, role.direct ? " direct" : "", > > access_str[role.access], role.invalid ? " invalid" : "", role.nxe ? "" : > > "!", REC->root_count, REC->unsync ? "unsync" : "sync", 0); ret; }), > > REC->created ? "new" : "existing" > > > > > > You need a full C parser/interpreter to understand the above. > > > > Right. The tools can fall back to %x/%s based on the structure > descriptor if they can't parse the format string. > trace-cmd has plugin support to override how to read the format and print it out. It now has the ability to write those plugins in python. -- Steve -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html