Re: [PATCH v5 16/18] perf: enable reading of perf.data files fromdifferent ABI rev

From: Anshuman Khandual
Date: Tue Feb 07 2012 - 02:03:45 EST


On Monday 06 February 2012 11:52 PM, Arnaldo Carvalho de Melo wrote:
> Em Thu, Feb 02, 2012 at 01:54:46PM +0100, Stephane Eranian escreveu:
>> This patch allows perf to process perf.data files generated
>> using an ABI that has a different perf_event_attr struct size, i.e.,
>> a different ABI version.
>>
>> The perf_event_attr can be extended, yet perf needs to cope with
>> older perf.data files. Similarly, perf must be able to cope with
>> a perf.data file which is using a newer version of the ABI than
>> what it knows about.
>>
>> This patch adds read_attr(), a routine that reads a perf_event_attr
>> struct from a file incrementally based on its advertised size. If
>> the on-file struct is smaller than what perf knows, then the extra
>> fields are zeroed. If the on-file struct is bigger, then perf only
>> uses what it knows about, the rest is skipped.
>
> Anshuman, can I have your Acked-by or Reviewed-by since you spotted
> problems in this and your suggestions were taken into account? Is this
> OK now?
>

(1) PERF_SAMPLE_BRANCH_HV and related privilege level problems has been fixed.
Verified various combinations of <branch_type>,[u,k,hv] <event>:[u,k,h].
Works well in all privilege level permutations.

(2) As Peter has mentioned 'has_branch_smpl()' bug in the ARM code would be taken
care.

(3) 'ref_size' problem in try_all_pipe_abis() has been fixed. All the patches
independently compile successfully.

(4) Went through the entire patchset, looks good to me.

Acked-by: Anshuman Khandual <khandual@xxxxxxxxxxxxxxxxxx>
Tested-by: Anshuman Khandual <khandual@xxxxxxxxxxxxxxxxxx>
--
Anshuman Khandual
Linux Technology Centre
IBM Systems and Technology Group

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/