Hi Jiri, Thanks for the review. I've addressed your suggestions; some notes are below. I'll send a new patch.
On 2021-03-24 2:20 p.m., Jiri Olsa wrote: > On Wed, Mar 24, 2021 at 09:06:50AM -0400, Nicholas Fraser wrote: >> [...] We use this to import the data into a tool on Windows >> where integrating perf or libbabeltrace is impractical. > > hi, > exciting ;-) and curious, which tool is that? > The tool is called gpuvis. The perf JSON parsing support is here: https://github.com/ludocode/gpuvis The idea is to be able to line up samples from perf with GPU trace events, so you can do things like timebox all perf samples in a particular frame of rendering. > we already have zstd support compiled in for compressing samples, > should be easy to use it for compressing the output of this right > away This would require that apps that consume this integrate zstd as well. It's simpler (both conceptually and from an integration standpoint) to just compress on command-line if you need with whatever compressor you want. You can even do this inline by writing to /dev/stdout, e.g.: perf data convert --to-json /dev/stdout --force | zstd > out.json.zstd Since we're transferring to Windows, more likely we'd output the JSON and then put it in a .zip container. > I understand not supporting opts.all or opts.tod, but 'force' > support means just assigning 'force' to struct perf_data It's not clear to me what 'force' does on 'struct perf_data' since we're only reading it. I assumed for data export it meant the output file should be overwritten. I've made it do both in the replacement patch. Nick