(Adding David Ahern in Cc)OK.
Ok that's all good except this needs to use the "perf script" centralized
dump.
Currently running "perf script" without an actual script dumps
the events by default, whatever kind of event they are: hardware,
software, tracepoints, ...
So we want the branch output to be supported there, so we can reuse
some code and interface.
For example, "perf script -f branch:comm,tid,sym" would print the
comm, tid and the sym for to and from addresses.
That's better than creating a new set of options in a new command
that people need to relearn while everybody could simply get
familiarized with common perf script options.
Of course we can still have a "perf branch" command, which could
be a tiny shortcut that maps to perf record and perf script.
Like:
perf branch record
perf branch [trace] -f tid,sym,comm
Would map to:
perf record branch:u
perf script -f branch:tid,sym,comm
And may be if one day we can do something more tricky than a
linear output for branches (like source code coloring/browsing),
then it may be implemented inside perf branch and not rely on
another subcommand. Until then we are only dealing with raw linear
dump, and that's a core job for perf script where we want to
centralize that kind of facility.
Thanks.