Messages in this thread | | | Subject | Re: [PATCH v2 1/3] perf: add PERF_RECORD_NAMESPACES to include namespaces related info | From | Hari Bathini <> | Date | Fri, 9 Dec 2016 15:40:36 +0530 |
| |
On Friday 09 December 2016 12:10 AM, Hari Bathini wrote: > Hi Peter, > > > Sorry for taking so long to respond... > > > On Thursday 24 November 2016 08:40 PM, Peter Zijlstra wrote: >> On Thu, Nov 24, 2016 at 08:14:29PM +0530, Hari Bathini wrote: >>> @@ -862,6 +875,19 @@ enum perf_event_type { >>> */ >>> PERF_RECORD_SWITCH_CPU_WIDE = 15, >>> + /* >>> + * struct { >>> + * struct perf_event_header header; >>> + * >>> + * u32 pid, tid; >>> + * u64 time; >> pid,tid and time are already present in sample_id. Many of the 'legacy' >> record have redundant information since we added sample_id, but most of >> the new ones haven't and rely on sample_all being set. > > I tried using pid/tid from sample data, but realized that pid/tid in > event_id > could be different from the one in sample data, at least for > fork/namespaces > events, since __perf_event_header__init_id( ) that updates the sample > data > is getting the pid/tid of current task. > > I am not sure if it is advisable to change > __perf_event_header__init_id( ) for this..? >
Hi Peter,
Adding task parameter to __perf_event_header__init_id( ) and doing something like..
perf_event_pid(event, task ? task : current) perf_event_tid(event, task ? task : current)
Also, for synthesized events, sample_id is not updated currently. Working on it as that is needed if we want to relay on pid, tid values from sample_id. Let me know, if this is what you had in mind or something else altogether..
Thanks Hari
| |