And in an unrelated note, I absolutely detest --buildid being the
default, it makes perf-record blow chunks.
So I'd absolutely _love_ to split up the singular perf.data into a hierarchy of
files in a .perf directory, with a structure like this (4-core system):
.perf/cmdline
.perf/features
.perf/evlist
.perf/ring_buffers/cpu0/raw.trace
.perf/ring_buffers/cpu1/raw.trace
.perf/ring_buffers/cpu2/raw.trace
.perf/ring_buffers/cpu3/raw.trace
...
I.e. the current single file format of perf.data would be split up into individual
files. Each CPU would get its own trace file output - any sorting and ordering
would be done afterwards. 'perf record' itself would never by default have to do
any of that, it's a pure recording session.
'perf archive' would still create a single file to make transport between machines
easy.
perf.data.old would be replaced by a .perf.old directory or so.
Debugging would be easier too I think, as there's no complex perf data format
anymore, it's all in individual (typically text, or binary dump) files in the
.perf directory.
This would solve all the scalability problems - and would make the format more
extensible and generally more accessible as well.
What do you think?