Reapply "perf: Disallow mis-matched inherited group reads"

This reverts commit b78ecc11ea.

Keeps the ABI stable by taking advantage of a hole in the structure!

Bug: 307236803
Change-Id: Ic5f7ebeb3a9b13afdb3bfff7e54c4a93b863dab6
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman
2023-11-02 15:49:38 +00:00
committed by Matthias Männich
parent 789c68e980
commit 40c0aa9ee1
3 changed files with 227 additions and 194 deletions

View File

@@ -12126,12 +12126,12 @@
<pointer-type-def type-id='d81ac7f6' size-in-bits='64' id='0e289f54'/>
<pointer-type-def type-id='897bd6f1' size-in-bits='64' id='0e291009'/>
<pointer-type-def type-id='b50ce591' size-in-bits='64' id='0e3f80d9'/>
<class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='1015' column='1' id='0e48f9a5'>
<class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='1018' column='1' id='0e48f9a5'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='pid' type-id='19c2251e' visibility='default' filepath='include/linux/perf_event.h' line='1016' column='1'/>
<var-decl name='pid' type-id='19c2251e' visibility='default' filepath='include/linux/perf_event.h' line='1019' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
<var-decl name='tid' type-id='19c2251e' visibility='default' filepath='include/linux/perf_event.h' line='1017' column='1'/>
<var-decl name='tid' type-id='19c2251e' visibility='default' filepath='include/linux/perf_event.h' line='1020' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='1119a98f' size-in-bits='64' id='0e587527'/>
@@ -24110,69 +24110,69 @@
<var-decl name='vaddr' type-id='7359adad' visibility='default' filepath='include/linux/uprobes.h' line='67' column='1'/>
</data-member>
</class-decl>
<class-decl name='perf_sample_data' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='996' column='1' id='2b3d4ba2'>
<class-decl name='perf_sample_data' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='999' column='1' id='2b3d4ba2'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='addr' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1001' column='1'/>
<var-decl name='addr' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1004' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='raw' type-id='f4a67529' visibility='default' filepath='include/linux/perf_event.h' line='1002' column='1'/>
<var-decl name='raw' type-id='f4a67529' visibility='default' filepath='include/linux/perf_event.h' line='1005' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='br_stack' type-id='070ae8d2' visibility='default' filepath='include/linux/perf_event.h' line='1003' column='1'/>
<var-decl name='br_stack' type-id='070ae8d2' visibility='default' filepath='include/linux/perf_event.h' line='1006' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
<var-decl name='period' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1004' column='1'/>
<var-decl name='period' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1007' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='weight' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1005' column='1'/>
<var-decl name='weight' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1008' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
<var-decl name='txn' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1006' column='1'/>
<var-decl name='txn' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1009' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
<var-decl name='data_src' type-id='2be3cc53' visibility='default' filepath='include/linux/perf_event.h' line='1007' column='1'/>
<var-decl name='data_src' type-id='2be3cc53' visibility='default' filepath='include/linux/perf_event.h' line='1010' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
<var-decl name='type' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1013' column='1'/>
<var-decl name='type' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1016' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
<var-decl name='ip' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1014' column='1'/>
<var-decl name='ip' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1017' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
<var-decl name='tid_entry' type-id='0e48f9a5' visibility='default' filepath='include/linux/perf_event.h' line='1018' column='1'/>
<var-decl name='tid_entry' type-id='0e48f9a5' visibility='default' filepath='include/linux/perf_event.h' line='1021' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
<var-decl name='time' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1019' column='1'/>
<var-decl name='time' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1022' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
<var-decl name='id' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1020' column='1'/>
<var-decl name='id' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1023' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
<var-decl name='stream_id' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1021' column='1'/>
<var-decl name='stream_id' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1024' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
<var-decl name='cpu_entry' type-id='3851c7bb' visibility='default' filepath='include/linux/perf_event.h' line='1025' column='1'/>
<var-decl name='cpu_entry' type-id='3851c7bb' visibility='default' filepath='include/linux/perf_event.h' line='1028' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
<var-decl name='callchain' type-id='cd3a82e3' visibility='default' filepath='include/linux/perf_event.h' line='1026' column='1'/>
<var-decl name='callchain' type-id='cd3a82e3' visibility='default' filepath='include/linux/perf_event.h' line='1029' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
<var-decl name='aux_size' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1027' column='1'/>
<var-decl name='aux_size' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1030' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
<var-decl name='regs_user' type-id='85b37ab4' visibility='default' filepath='include/linux/perf_event.h' line='1029' column='1'/>
<var-decl name='regs_user' type-id='85b37ab4' visibility='default' filepath='include/linux/perf_event.h' line='1032' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
<var-decl name='regs_intr' type-id='85b37ab4' visibility='default' filepath='include/linux/perf_event.h' line='1030' column='1'/>
<var-decl name='regs_intr' type-id='85b37ab4' visibility='default' filepath='include/linux/perf_event.h' line='1033' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
<var-decl name='stack_user_size' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1031' column='1'/>
<var-decl name='stack_user_size' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1034' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1344'>
<var-decl name='phys_addr' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1033' column='1'/>
<var-decl name='phys_addr' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1036' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1408'>
<var-decl name='cgroup' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1034' column='1'/>
<var-decl name='cgroup' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1037' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='f8f2633f' size-in-bits='64' id='2b3f1c33'/>
@@ -27727,12 +27727,12 @@
<parameter type-id='19c2251e'/>
<return type-id='f0981eeb'/>
</function-type>
<class-decl name='perf_event_groups' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='786' column='1' id='3643bc2a'>
<class-decl name='perf_event_groups' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='789' column='1' id='3643bc2a'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='tree' type-id='dec44472' visibility='default' filepath='include/linux/perf_event.h' line='787' column='1'/>
<var-decl name='tree' type-id='dec44472' visibility='default' filepath='include/linux/perf_event.h' line='790' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='index' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='788' column='1'/>
<var-decl name='index' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='791' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='e07298c6' size-in-bits='64' id='364779d0'/>
@@ -28259,12 +28259,12 @@
<var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/ip6_fib.h' line='230' column='1'/>
</data-member>
</class-decl>
<class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='1022' column='1' id='3851c7bb'>
<class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='1025' column='1' id='3851c7bb'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='cpu' type-id='19c2251e' visibility='default' filepath='include/linux/perf_event.h' line='1023' column='1'/>
<var-decl name='cpu' type-id='19c2251e' visibility='default' filepath='include/linux/perf_event.h' line='1026' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
<var-decl name='reserved' type-id='19c2251e' visibility='default' filepath='include/linux/perf_event.h' line='1024' column='1'/>
<var-decl name='reserved' type-id='19c2251e' visibility='default' filepath='include/linux/perf_event.h' line='1027' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='d49e6088' size-in-bits='64' id='38527a92'/>
@@ -33225,48 +33225,48 @@
<pointer-type-def type-id='a6d8bab7' size-in-bits='64' id='442dc527'/>
<pointer-type-def type-id='fbc017ef' size-in-bits='64' id='44372936'/>
<qualified-type-def type-id='43795fda' const='yes' id='4443d9d9'/>
<class-decl name='perf_cpu_context' size-in-bits='3520' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='862' column='1' id='4448fdd3'>
<class-decl name='perf_cpu_context' size-in-bits='3520' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='865' column='1' id='4448fdd3'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='ctx' type-id='9d67acd5' visibility='default' filepath='include/linux/perf_event.h' line='863' column='1'/>
<var-decl name='ctx' type-id='9d67acd5' visibility='default' filepath='include/linux/perf_event.h' line='866' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2176'>
<var-decl name='task_ctx' type-id='b9419dc5' visibility='default' filepath='include/linux/perf_event.h' line='864' column='1'/>
<var-decl name='task_ctx' type-id='b9419dc5' visibility='default' filepath='include/linux/perf_event.h' line='867' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2240'>
<var-decl name='active_oncpu' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='865' column='1'/>
<var-decl name='active_oncpu' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='868' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2272'>
<var-decl name='exclusive' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='866' column='1'/>
<var-decl name='exclusive' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='869' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2304'>
<var-decl name='hrtimer_lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/perf_event.h' line='868' column='1'/>
<var-decl name='hrtimer_lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/perf_event.h' line='871' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2368'>
<var-decl name='hrtimer' type-id='b6993efc' visibility='default' filepath='include/linux/perf_event.h' line='869' column='1'/>
<var-decl name='hrtimer' type-id='b6993efc' visibility='default' filepath='include/linux/perf_event.h' line='872' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2944'>
<var-decl name='hrtimer_interval' type-id='fbc017ef' visibility='default' filepath='include/linux/perf_event.h' line='870' column='1'/>
<var-decl name='hrtimer_interval' type-id='fbc017ef' visibility='default' filepath='include/linux/perf_event.h' line='873' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3008'>
<var-decl name='hrtimer_active' type-id='f0981eeb' visibility='default' filepath='include/linux/perf_event.h' line='871' column='1'/>
<var-decl name='hrtimer_active' type-id='f0981eeb' visibility='default' filepath='include/linux/perf_event.h' line='874' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3072'>
<var-decl name='sched_cb_entry' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='878' column='1'/>
<var-decl name='sched_cb_entry' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='881' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3200'>
<var-decl name='sched_cb_usage' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='879' column='1'/>
<var-decl name='sched_cb_usage' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='882' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3232'>
<var-decl name='online' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='881' column='1'/>
<var-decl name='online' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='884' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3264'>
<var-decl name='heap_size' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='886' column='1'/>
<var-decl name='heap_size' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='889' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3328'>
<var-decl name='heap' type-id='a0127209' visibility='default' filepath='include/linux/perf_event.h' line='887' column='1'/>
<var-decl name='heap' type-id='a0127209' visibility='default' filepath='include/linux/perf_event.h' line='890' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3392'>
<var-decl name='heap_default' type-id='e0f8c0f3' visibility='default' filepath='include/linux/perf_event.h' line='888' column='1'/>
<var-decl name='heap_default' type-id='e0f8c0f3' visibility='default' filepath='include/linux/perf_event.h' line='891' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='ee15d052' size-in-bits='64' id='44572ce8'/>
@@ -37006,12 +37006,12 @@
<qualified-type-def type-id='2ba71bf0' const='yes' id='4e267e15'/>
<pointer-type-def type-id='9a165a97' size-in-bits='64' id='4e30d787'/>
<pointer-type-def type-id='b992836c' size-in-bits='64' id='4e326e06'/>
<union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='897' column='1' id='4e335919'>
<union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='900' column='1' id='4e335919'>
<data-member access='public'>
<var-decl name='addr' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='898' column='1'/>
<var-decl name='addr' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='901' column='1'/>
</data-member>
<data-member access='public'>
<var-decl name='head' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='899' column='1'/>
<var-decl name='head' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='902' column='1'/>
</data-member>
</union-decl>
<function-type size-in-bits='64' id='4e3458ca'>
@@ -52706,176 +52706,179 @@
<data-member access='public' layout-offset-in-bits='1088'>
<var-decl name='group_caps' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='660' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1120'>
<var-decl name='group_generation' type-id='f0981eeb' visibility='default' filepath='include/linux/perf_event.h' line='663' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
<var-decl name='group_leader' type-id='2bf16f59' visibility='default' filepath='include/linux/perf_event.h' line='662' column='1'/>
<var-decl name='group_leader' type-id='2bf16f59' visibility='default' filepath='include/linux/perf_event.h' line='665' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
<var-decl name='pmu' type-id='0906f5b9' visibility='default' filepath='include/linux/perf_event.h' line='663' column='1'/>
<var-decl name='pmu' type-id='0906f5b9' visibility='default' filepath='include/linux/perf_event.h' line='666' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
<var-decl name='pmu_private' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='664' column='1'/>
<var-decl name='pmu_private' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='667' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1344'>
<var-decl name='state' type-id='31fdb95a' visibility='default' filepath='include/linux/perf_event.h' line='666' column='1'/>
<var-decl name='state' type-id='31fdb95a' visibility='default' filepath='include/linux/perf_event.h' line='669' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1376'>
<var-decl name='attach_state' type-id='f0981eeb' visibility='default' filepath='include/linux/perf_event.h' line='667' column='1'/>
<var-decl name='attach_state' type-id='f0981eeb' visibility='default' filepath='include/linux/perf_event.h' line='670' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1408'>
<var-decl name='count' type-id='7da7300e' visibility='default' filepath='include/linux/perf_event.h' line='668' column='1'/>
<var-decl name='count' type-id='7da7300e' visibility='default' filepath='include/linux/perf_event.h' line='671' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1472'>
<var-decl name='child_count' type-id='28ee064c' visibility='default' filepath='include/linux/perf_event.h' line='669' column='1'/>
<var-decl name='child_count' type-id='28ee064c' visibility='default' filepath='include/linux/perf_event.h' line='672' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1536'>
<var-decl name='total_time_enabled' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='677' column='1'/>
<var-decl name='total_time_enabled' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='680' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1600'>
<var-decl name='total_time_running' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='678' column='1'/>
<var-decl name='total_time_running' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='681' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1664'>
<var-decl name='tstamp' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='679' column='1'/>
<var-decl name='tstamp' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='682' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1728'>
<var-decl name='shadow_ctx_time' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='691' column='1'/>
<var-decl name='shadow_ctx_time' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='694' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1792'>
<var-decl name='attr' type-id='e57536d9' visibility='default' filepath='include/linux/perf_event.h' line='693' column='1'/>
<var-decl name='attr' type-id='e57536d9' visibility='default' filepath='include/linux/perf_event.h' line='696' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2752'>
<var-decl name='header_size' type-id='1dc6a898' visibility='default' filepath='include/linux/perf_event.h' line='694' column='1'/>
<var-decl name='header_size' type-id='1dc6a898' visibility='default' filepath='include/linux/perf_event.h' line='697' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2768'>
<var-decl name='id_header_size' type-id='1dc6a898' visibility='default' filepath='include/linux/perf_event.h' line='695' column='1'/>
<var-decl name='id_header_size' type-id='1dc6a898' visibility='default' filepath='include/linux/perf_event.h' line='698' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2784'>
<var-decl name='read_size' type-id='1dc6a898' visibility='default' filepath='include/linux/perf_event.h' line='696' column='1'/>
<var-decl name='read_size' type-id='1dc6a898' visibility='default' filepath='include/linux/perf_event.h' line='699' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2816'>
<var-decl name='hw' type-id='b594b0c9' visibility='default' filepath='include/linux/perf_event.h' line='697' column='1'/>
<var-decl name='hw' type-id='b594b0c9' visibility='default' filepath='include/linux/perf_event.h' line='700' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4352'>
<var-decl name='ctx' type-id='b9419dc5' visibility='default' filepath='include/linux/perf_event.h' line='699' column='1'/>
<var-decl name='ctx' type-id='b9419dc5' visibility='default' filepath='include/linux/perf_event.h' line='702' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4416'>
<var-decl name='refcount' type-id='f22a8abb' visibility='default' filepath='include/linux/perf_event.h' line='700' column='1'/>
<var-decl name='refcount' type-id='f22a8abb' visibility='default' filepath='include/linux/perf_event.h' line='703' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4480'>
<var-decl name='child_total_time_enabled' type-id='28ee064c' visibility='default' filepath='include/linux/perf_event.h' line='706' column='1'/>
<var-decl name='child_total_time_enabled' type-id='28ee064c' visibility='default' filepath='include/linux/perf_event.h' line='709' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4544'>
<var-decl name='child_total_time_running' type-id='28ee064c' visibility='default' filepath='include/linux/perf_event.h' line='707' column='1'/>
<var-decl name='child_total_time_running' type-id='28ee064c' visibility='default' filepath='include/linux/perf_event.h' line='710' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4608'>
<var-decl name='child_mutex' type-id='925167dc' visibility='default' filepath='include/linux/perf_event.h' line='712' column='1'/>
<var-decl name='child_mutex' type-id='925167dc' visibility='default' filepath='include/linux/perf_event.h' line='715' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4992'>
<var-decl name='child_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='713' column='1'/>
<var-decl name='child_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='716' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5120'>
<var-decl name='parent' type-id='2bf16f59' visibility='default' filepath='include/linux/perf_event.h' line='714' column='1'/>
<var-decl name='parent' type-id='2bf16f59' visibility='default' filepath='include/linux/perf_event.h' line='717' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5184'>
<var-decl name='oncpu' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='716' column='1'/>
<var-decl name='oncpu' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='719' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5216'>
<var-decl name='cpu' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='717' column='1'/>
<var-decl name='cpu' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='720' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5248'>
<var-decl name='owner_entry' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='719' column='1'/>
<var-decl name='owner_entry' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='722' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5376'>
<var-decl name='owner' type-id='f23e2572' visibility='default' filepath='include/linux/perf_event.h' line='720' column='1'/>
<var-decl name='owner' type-id='f23e2572' visibility='default' filepath='include/linux/perf_event.h' line='723' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5440'>
<var-decl name='mmap_mutex' type-id='925167dc' visibility='default' filepath='include/linux/perf_event.h' line='723' column='1'/>
<var-decl name='mmap_mutex' type-id='925167dc' visibility='default' filepath='include/linux/perf_event.h' line='726' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5824'>
<var-decl name='mmap_count' type-id='49178f86' visibility='default' filepath='include/linux/perf_event.h' line='724' column='1'/>
<var-decl name='mmap_count' type-id='49178f86' visibility='default' filepath='include/linux/perf_event.h' line='727' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5888'>
<var-decl name='rb' type-id='35b814e1' visibility='default' filepath='include/linux/perf_event.h' line='726' column='1'/>
<var-decl name='rb' type-id='35b814e1' visibility='default' filepath='include/linux/perf_event.h' line='729' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5952'>
<var-decl name='rb_entry' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='727' column='1'/>
<var-decl name='rb_entry' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='730' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='6080'>
<var-decl name='rcu_batches' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='728' column='1'/>
<var-decl name='rcu_batches' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='731' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='6144'>
<var-decl name='rcu_pending' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='729' column='1'/>
<var-decl name='rcu_pending' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='732' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='6208'>
<var-decl name='waitq' type-id='b5ab048f' visibility='default' filepath='include/linux/perf_event.h' line='732' column='1'/>
<var-decl name='waitq' type-id='b5ab048f' visibility='default' filepath='include/linux/perf_event.h' line='735' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='6400'>
<var-decl name='fasync' type-id='5bb9c75d' visibility='default' filepath='include/linux/perf_event.h' line='733' column='1'/>
<var-decl name='fasync' type-id='5bb9c75d' visibility='default' filepath='include/linux/perf_event.h' line='736' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='6464'>
<var-decl name='pending_wakeup' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='736' column='1'/>
<var-decl name='pending_wakeup' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='739' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='6496'>
<var-decl name='pending_kill' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='737' column='1'/>
<var-decl name='pending_kill' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='740' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='6528'>
<var-decl name='pending_disable' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='738' column='1'/>
<var-decl name='pending_disable' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='741' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='6592'>
<var-decl name='pending' type-id='9281c70f' visibility='default' filepath='include/linux/perf_event.h' line='739' column='1'/>
<var-decl name='pending' type-id='9281c70f' visibility='default' filepath='include/linux/perf_event.h' line='742' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='6784'>
<var-decl name='event_limit' type-id='49178f86' visibility='default' filepath='include/linux/perf_event.h' line='741' column='1'/>
<var-decl name='event_limit' type-id='49178f86' visibility='default' filepath='include/linux/perf_event.h' line='744' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='6848'>
<var-decl name='addr_filters' type-id='54885433' visibility='default' filepath='include/linux/perf_event.h' line='744' column='1'/>
<var-decl name='addr_filters' type-id='54885433' visibility='default' filepath='include/linux/perf_event.h' line='747' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7040'>
<var-decl name='addr_filter_ranges' type-id='200ffa89' visibility='default' filepath='include/linux/perf_event.h' line='746' column='1'/>
<var-decl name='addr_filter_ranges' type-id='200ffa89' visibility='default' filepath='include/linux/perf_event.h' line='749' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7104'>
<var-decl name='addr_filters_gen' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='747' column='1'/>
<var-decl name='addr_filters_gen' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='750' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7168'>
<var-decl name='aux_event' type-id='2bf16f59' visibility='default' filepath='include/linux/perf_event.h' line='750' column='1'/>
<var-decl name='aux_event' type-id='2bf16f59' visibility='default' filepath='include/linux/perf_event.h' line='753' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7232'>
<var-decl name='destroy' type-id='aed2baa8' visibility='default' filepath='include/linux/perf_event.h' line='752' column='1'/>
<var-decl name='destroy' type-id='aed2baa8' visibility='default' filepath='include/linux/perf_event.h' line='755' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7296'>
<var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/perf_event.h' line='753' column='1'/>
<var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/perf_event.h' line='756' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7424'>
<var-decl name='ns' type-id='b816e1d0' visibility='default' filepath='include/linux/perf_event.h' line='755' column='1'/>
<var-decl name='ns' type-id='b816e1d0' visibility='default' filepath='include/linux/perf_event.h' line='758' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7488'>
<var-decl name='id' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='756' column='1'/>
<var-decl name='id' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='759' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7552'>
<var-decl name='clock' type-id='0e70db3e' visibility='default' filepath='include/linux/perf_event.h' line='758' column='1'/>
<var-decl name='clock' type-id='0e70db3e' visibility='default' filepath='include/linux/perf_event.h' line='761' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7616'>
<var-decl name='overflow_handler' type-id='20a2e4e6' visibility='default' filepath='include/linux/perf_event.h' line='759' column='1'/>
<var-decl name='overflow_handler' type-id='20a2e4e6' visibility='default' filepath='include/linux/perf_event.h' line='762' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7680'>
<var-decl name='overflow_handler_context' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='760' column='1'/>
<var-decl name='overflow_handler_context' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='763' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7744'>
<var-decl name='orig_overflow_handler' type-id='20a2e4e6' visibility='default' filepath='include/linux/perf_event.h' line='762' column='1'/>
<var-decl name='orig_overflow_handler' type-id='20a2e4e6' visibility='default' filepath='include/linux/perf_event.h' line='765' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7808'>
<var-decl name='prog' type-id='bdcee7ae' visibility='default' filepath='include/linux/perf_event.h' line='763' column='1'/>
<var-decl name='prog' type-id='bdcee7ae' visibility='default' filepath='include/linux/perf_event.h' line='766' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7872'>
<var-decl name='tp_event' type-id='23d6768c' visibility='default' filepath='include/linux/perf_event.h' line='767' column='1'/>
<var-decl name='tp_event' type-id='23d6768c' visibility='default' filepath='include/linux/perf_event.h' line='770' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7936'>
<var-decl name='filter' type-id='26461068' visibility='default' filepath='include/linux/perf_event.h' line='768' column='1'/>
<var-decl name='filter' type-id='26461068' visibility='default' filepath='include/linux/perf_event.h' line='771' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8000'>
<var-decl name='security' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='779' column='1'/>
<var-decl name='security' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='782' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8064'>
<var-decl name='sb_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='781' column='1'/>
<var-decl name='sb_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='784' column='1'/>
</data-member>
</class-decl>
<typedef-decl name='work_func_t' type-id='939280af' filepath='include/linux/workqueue.h' line='22' column='1' id='72666d3f'/>
@@ -69239,27 +69242,27 @@
<parameter type-id='acada613'/>
<return type-id='f0981eeb'/>
</function-type>
<class-decl name='perf_output_handle' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='891' column='1' id='98bc2b95'>
<class-decl name='perf_output_handle' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='894' column='1' id='98bc2b95'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='event' type-id='2bf16f59' visibility='default' filepath='include/linux/perf_event.h' line='892' column='1'/>
<var-decl name='event' type-id='2bf16f59' visibility='default' filepath='include/linux/perf_event.h' line='895' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='rb' type-id='35b814e1' visibility='default' filepath='include/linux/perf_event.h' line='893' column='1'/>
<var-decl name='rb' type-id='35b814e1' visibility='default' filepath='include/linux/perf_event.h' line='896' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='wakeup' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='894' column='1'/>
<var-decl name='wakeup' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='897' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
<var-decl name='size' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='895' column='1'/>
<var-decl name='size' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='898' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='aux_flags' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='896' column='1'/>
<var-decl name='aux_flags' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='899' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
<var-decl name='' type-id='4e335919' visibility='default' filepath='include/linux/perf_event.h' line='897' column='1'/>
<var-decl name='' type-id='4e335919' visibility='default' filepath='include/linux/perf_event.h' line='900' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
<var-decl name='page' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='901' column='1'/>
<var-decl name='page' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='904' column='1'/>
</data-member>
</class-decl>
<class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/restart_block.h' line='48' column='1' id='98bfe848'>
@@ -71362,84 +71365,84 @@
</function-type>
<pointer-type-def type-id='053f72e5' size-in-bits='64' id='9d632ac5'/>
<pointer-type-def type-id='ca7f7878' size-in-bits='64' id='9d640202'/>
<class-decl name='perf_event_context' size-in-bits='2176' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='796' column='1' id='9d67acd5'>
<class-decl name='perf_event_context' size-in-bits='2176' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='799' column='1' id='9d67acd5'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='pmu' type-id='0906f5b9' visibility='default' filepath='include/linux/perf_event.h' line='797' column='1'/>
<var-decl name='pmu' type-id='0906f5b9' visibility='default' filepath='include/linux/perf_event.h' line='800' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/perf_event.h' line='802' column='1'/>
<var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/perf_event.h' line='805' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/linux/perf_event.h' line='808' column='1'/>
<var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/linux/perf_event.h' line='811' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
<var-decl name='active_ctx_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='810' column='1'/>
<var-decl name='active_ctx_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='813' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
<var-decl name='pinned_groups' type-id='3643bc2a' visibility='default' filepath='include/linux/perf_event.h' line='811' column='1'/>
<var-decl name='pinned_groups' type-id='3643bc2a' visibility='default' filepath='include/linux/perf_event.h' line='814' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
<var-decl name='flexible_groups' type-id='3643bc2a' visibility='default' filepath='include/linux/perf_event.h' line='812' column='1'/>
<var-decl name='flexible_groups' type-id='3643bc2a' visibility='default' filepath='include/linux/perf_event.h' line='815' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
<var-decl name='event_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='813' column='1'/>
<var-decl name='event_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='816' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
<var-decl name='pinned_active' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='815' column='1'/>
<var-decl name='pinned_active' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='818' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
<var-decl name='flexible_active' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='816' column='1'/>
<var-decl name='flexible_active' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='819' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
<var-decl name='nr_events' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='818' column='1'/>
<var-decl name='nr_events' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='821' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1312'>
<var-decl name='nr_active' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='819' column='1'/>
<var-decl name='nr_active' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='822' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1344'>
<var-decl name='is_active' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='820' column='1'/>
<var-decl name='is_active' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='823' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1376'>
<var-decl name='nr_stat' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='821' column='1'/>
<var-decl name='nr_stat' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='824' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1408'>
<var-decl name='nr_freq' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='822' column='1'/>
<var-decl name='nr_freq' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='825' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1440'>
<var-decl name='rotate_disable' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='823' column='1'/>
<var-decl name='rotate_disable' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='826' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1472'>
<var-decl name='rotate_necessary' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='828' column='1'/>
<var-decl name='rotate_necessary' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='831' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1504'>
<var-decl name='refcount' type-id='64615833' visibility='default' filepath='include/linux/perf_event.h' line='829' column='1'/>
<var-decl name='refcount' type-id='64615833' visibility='default' filepath='include/linux/perf_event.h' line='832' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1536'>
<var-decl name='task' type-id='f23e2572' visibility='default' filepath='include/linux/perf_event.h' line='830' column='1'/>
<var-decl name='task' type-id='f23e2572' visibility='default' filepath='include/linux/perf_event.h' line='833' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1600'>
<var-decl name='time' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='835' column='1'/>
<var-decl name='time' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='838' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1664'>
<var-decl name='timestamp' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='836' column='1'/>
<var-decl name='timestamp' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='839' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1728'>
<var-decl name='parent_ctx' type-id='b9419dc5' visibility='default' filepath='include/linux/perf_event.h' line='842' column='1'/>
<var-decl name='parent_ctx' type-id='b9419dc5' visibility='default' filepath='include/linux/perf_event.h' line='845' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1792'>
<var-decl name='parent_gen' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='843' column='1'/>
<var-decl name='parent_gen' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='846' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1856'>
<var-decl name='generation' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='844' column='1'/>
<var-decl name='generation' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='847' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1920'>
<var-decl name='pin_count' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='845' column='1'/>
<var-decl name='pin_count' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='848' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1984'>
<var-decl name='task_ctx_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='849' column='1'/>
<var-decl name='task_ctx_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='852' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2048'>
<var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/perf_event.h' line='850' column='1'/>
<var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/perf_event.h' line='853' column='1'/>
</data-member>
</class-decl>
<class-decl name='usb_cdc_mdlm_desc' size-in-bits='168' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='157' column='1' id='9d7259bb'>
@@ -139655,50 +139658,50 @@
<parameter type-id='91ce1af9' name='flags' filepath='kernel/events/ring_buffer.c' line='334' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='perf_event_addr_filters_sync' mangled-name='perf_event_addr_filters_sync' filepath='kernel/events/core.c' line='3129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_addr_filters_sync'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='3129' column='1'/>
<function-decl name='perf_event_addr_filters_sync' mangled-name='perf_event_addr_filters_sync' filepath='kernel/events/core.c' line='3131' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_addr_filters_sync'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='3131' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='perf_event_create_kernel_counter' mangled-name='perf_event_create_kernel_counter' filepath='kernel/events/core.c' line='12192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_create_kernel_counter'>
<parameter type-id='20862e61' name='attr' filepath='kernel/events/core.c' line='12192' column='1'/>
<parameter type-id='95e97e5e' name='cpu' filepath='kernel/events/core.c' line='12192' column='1'/>
<parameter type-id='f23e2572' name='task' filepath='kernel/events/core.c' line='12193' column='1'/>
<parameter type-id='20a2e4e6' name='overflow_handler' filepath='kernel/events/core.c' line='12194' column='1'/>
<parameter type-id='eaa32e2f' name='context' filepath='kernel/events/core.c' line='12195' column='1'/>
<function-decl name='perf_event_create_kernel_counter' mangled-name='perf_event_create_kernel_counter' filepath='kernel/events/core.c' line='12218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_create_kernel_counter'>
<parameter type-id='20862e61' name='attr' filepath='kernel/events/core.c' line='12218' column='1'/>
<parameter type-id='95e97e5e' name='cpu' filepath='kernel/events/core.c' line='12218' column='1'/>
<parameter type-id='f23e2572' name='task' filepath='kernel/events/core.c' line='12219' column='1'/>
<parameter type-id='20a2e4e6' name='overflow_handler' filepath='kernel/events/core.c' line='12220' column='1'/>
<parameter type-id='eaa32e2f' name='context' filepath='kernel/events/core.c' line='12221' column='1'/>
<return type-id='2bf16f59'/>
</function-decl>
<function-decl name='perf_event_disable' mangled-name='perf_event_disable' filepath='kernel/events/core.c' line='2458' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_disable'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='2458' column='1'/>
<function-decl name='perf_event_disable' mangled-name='perf_event_disable' filepath='kernel/events/core.c' line='2460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_disable'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='2460' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='perf_event_enable' mangled-name='perf_event_enable' filepath='kernel/events/core.c' line='3029' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_enable'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='3029' column='1'/>
<function-decl name='perf_event_enable' mangled-name='perf_event_enable' filepath='kernel/events/core.c' line='3031' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_enable'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='3031' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='perf_event_pause' mangled-name='perf_event_pause' filepath='kernel/events/core.c' line='5368' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_pause'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='5368' column='1'/>
<parameter type-id='b50a4934' name='reset' filepath='kernel/events/core.c' line='5368' column='1'/>
<function-decl name='perf_event_pause' mangled-name='perf_event_pause' filepath='kernel/events/core.c' line='5394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_pause'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='5394' column='1'/>
<parameter type-id='b50a4934' name='reset' filepath='kernel/events/core.c' line='5394' column='1'/>
<return type-id='91ce1af9'/>
</function-decl>
<function-decl name='perf_event_read_local' mangled-name='perf_event_read_local' filepath='kernel/events/core.c' line='4341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_read_local'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='4341' column='1'/>
<parameter type-id='3df9fd28' name='value' filepath='kernel/events/core.c' line='4341' column='1'/>
<parameter type-id='3df9fd28' name='enabled' filepath='kernel/events/core.c' line='4342' column='1'/>
<parameter type-id='3df9fd28' name='running' filepath='kernel/events/core.c' line='4342' column='1'/>
<function-decl name='perf_event_read_local' mangled-name='perf_event_read_local' filepath='kernel/events/core.c' line='4343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_read_local'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='4343' column='1'/>
<parameter type-id='3df9fd28' name='value' filepath='kernel/events/core.c' line='4343' column='1'/>
<parameter type-id='3df9fd28' name='enabled' filepath='kernel/events/core.c' line='4344' column='1'/>
<parameter type-id='3df9fd28' name='running' filepath='kernel/events/core.c' line='4344' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='perf_event_read_value' mangled-name='perf_event_read_value' filepath='kernel/events/core.c' line='5150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_read_value'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='5150' column='1'/>
<parameter type-id='3df9fd28' name='enabled' filepath='kernel/events/core.c' line='5150' column='1'/>
<parameter type-id='3df9fd28' name='running' filepath='kernel/events/core.c' line='5150' column='1'/>
<function-decl name='perf_event_read_value' mangled-name='perf_event_read_value' filepath='kernel/events/core.c' line='5152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_read_value'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='5152' column='1'/>
<parameter type-id='3df9fd28' name='enabled' filepath='kernel/events/core.c' line='5152' column='1'/>
<parameter type-id='3df9fd28' name='running' filepath='kernel/events/core.c' line='5152' column='1'/>
<return type-id='91ce1af9'/>
</function-decl>
<function-decl name='perf_event_release_kernel' mangled-name='perf_event_release_kernel' filepath='kernel/events/core.c' line='5000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_release_kernel'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='5000' column='1'/>
<function-decl name='perf_event_release_kernel' mangled-name='perf_event_release_kernel' filepath='kernel/events/core.c' line='5002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_release_kernel'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='5002' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='perf_event_update_userpage' mangled-name='perf_event_update_userpage' filepath='kernel/events/core.c' line='5747' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_update_userpage'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='5747' column='1'/>
<function-decl name='perf_event_update_userpage' mangled-name='perf_event_update_userpage' filepath='kernel/events/core.c' line='5773' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_update_userpage'>
<parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='5773' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='perf_get_aux' mangled-name='perf_get_aux' filepath='kernel/events/ring_buffer.c' line='557' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_get_aux'>
@@ -139708,20 +139711,20 @@
<function-decl name='perf_num_counters' mangled-name='perf_num_counters' filepath='drivers/perf/arm_pmu.c' line='598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_num_counters'>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='perf_pmu_migrate_context' mangled-name='perf_pmu_migrate_context' filepath='kernel/events/core.c' line='12271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_pmu_migrate_context'>
<parameter type-id='0906f5b9' name='pmu' filepath='kernel/events/core.c' line='12271' column='1'/>
<parameter type-id='95e97e5e' name='src_cpu' filepath='kernel/events/core.c' line='12271' column='1'/>
<parameter type-id='95e97e5e' name='dst_cpu' filepath='kernel/events/core.c' line='12271' column='1'/>
<function-decl name='perf_pmu_migrate_context' mangled-name='perf_pmu_migrate_context' filepath='kernel/events/core.c' line='12297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_pmu_migrate_context'>
<parameter type-id='0906f5b9' name='pmu' filepath='kernel/events/core.c' line='12297' column='1'/>
<parameter type-id='95e97e5e' name='src_cpu' filepath='kernel/events/core.c' line='12297' column='1'/>
<parameter type-id='95e97e5e' name='dst_cpu' filepath='kernel/events/core.c' line='12297' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='perf_pmu_register' mangled-name='perf_pmu_register' filepath='kernel/events/core.c' line='10812' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_pmu_register'>
<parameter type-id='0906f5b9' name='pmu' filepath='kernel/events/core.c' line='10812' column='1'/>
<parameter type-id='80f4b756' name='name' filepath='kernel/events/core.c' line='10812' column='1'/>
<parameter type-id='95e97e5e' name='type' filepath='kernel/events/core.c' line='10812' column='1'/>
<function-decl name='perf_pmu_register' mangled-name='perf_pmu_register' filepath='kernel/events/core.c' line='10838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_pmu_register'>
<parameter type-id='0906f5b9' name='pmu' filepath='kernel/events/core.c' line='10838' column='1'/>
<parameter type-id='80f4b756' name='name' filepath='kernel/events/core.c' line='10838' column='1'/>
<parameter type-id='95e97e5e' name='type' filepath='kernel/events/core.c' line='10838' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='perf_pmu_unregister' mangled-name='perf_pmu_unregister' filepath='kernel/events/core.c' line='10948' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_pmu_unregister'>
<parameter type-id='0906f5b9' name='pmu' filepath='kernel/events/core.c' line='10948' column='1'/>
<function-decl name='perf_pmu_unregister' mangled-name='perf_pmu_unregister' filepath='kernel/events/core.c' line='10974' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_pmu_unregister'>
<parameter type-id='0906f5b9' name='pmu' filepath='kernel/events/core.c' line='10974' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='perf_trace_buf_alloc' mangled-name='perf_trace_buf_alloc' filepath='kernel/trace/trace_event_perf.c' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_trace_buf_alloc'>
@@ -139730,15 +139733,15 @@
<parameter type-id='7292109c' name='rctxp' filepath='kernel/trace/trace_event_perf.c' line='395' column='1'/>
<return type-id='eaa32e2f'/>
</function-decl>
<function-decl name='perf_trace_run_bpf_submit' mangled-name='perf_trace_run_bpf_submit' filepath='kernel/events/core.c' line='9443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_trace_run_bpf_submit'>
<parameter type-id='eaa32e2f' name='raw_data' filepath='kernel/events/core.c' line='9443' column='1'/>
<parameter type-id='95e97e5e' name='size' filepath='kernel/events/core.c' line='9443' column='1'/>
<parameter type-id='95e97e5e' name='rctx' filepath='kernel/events/core.c' line='9443' column='1'/>
<parameter type-id='23d6768c' name='call' filepath='kernel/events/core.c' line='9444' column='1'/>
<parameter type-id='91ce1af9' name='count' filepath='kernel/events/core.c' line='9444' column='1'/>
<parameter type-id='4616a179' name='regs' filepath='kernel/events/core.c' line='9445' column='1'/>
<parameter type-id='030d0b18' name='head' filepath='kernel/events/core.c' line='9445' column='1'/>
<parameter type-id='f23e2572' name='task' filepath='kernel/events/core.c' line='9446' column='1'/>
<function-decl name='perf_trace_run_bpf_submit' mangled-name='perf_trace_run_bpf_submit' filepath='kernel/events/core.c' line='9469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_trace_run_bpf_submit'>
<parameter type-id='eaa32e2f' name='raw_data' filepath='kernel/events/core.c' line='9469' column='1'/>
<parameter type-id='95e97e5e' name='size' filepath='kernel/events/core.c' line='9469' column='1'/>
<parameter type-id='95e97e5e' name='rctx' filepath='kernel/events/core.c' line='9469' column='1'/>
<parameter type-id='23d6768c' name='call' filepath='kernel/events/core.c' line='9470' column='1'/>
<parameter type-id='91ce1af9' name='count' filepath='kernel/events/core.c' line='9470' column='1'/>
<parameter type-id='4616a179' name='regs' filepath='kernel/events/core.c' line='9471' column='1'/>
<parameter type-id='030d0b18' name='head' filepath='kernel/events/core.c' line='9471' column='1'/>
<parameter type-id='f23e2572' name='task' filepath='kernel/events/core.c' line='9472' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='pfn_valid' mangled-name='pfn_valid' filepath='arch/arm64/mm/init.c' line='263' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pfn_valid'>

View File

@@ -659,6 +659,9 @@ struct perf_event {
/* The cumulative AND of all event_caps for events in this group. */
int group_caps;
#ifndef __GENKSYMS__
unsigned int group_generation;
#endif
struct perf_event *group_leader;
struct pmu *pmu;
void *pmu_private;

View File

@@ -1986,6 +1986,7 @@ static void perf_group_attach(struct perf_event *event)
list_add_tail(&event->sibling_list, &group_leader->sibling_list);
group_leader->nr_siblings++;
group_leader->group_generation++;
perf_event__header_size(group_leader);
@@ -2178,6 +2179,7 @@ static void perf_group_detach(struct perf_event *event)
if (leader != event) {
list_del_init(&event->sibling_list);
event->group_leader->nr_siblings--;
event->group_leader->group_generation++;
goto out;
}
@@ -5164,7 +5166,7 @@ static int __perf_read_group_add(struct perf_event *leader,
u64 read_format, u64 *values)
{
struct perf_event_context *ctx = leader->ctx;
struct perf_event *sub;
struct perf_event *sub, *parent;
unsigned long flags;
int n = 1; /* skip @nr */
int ret;
@@ -5174,6 +5176,33 @@ static int __perf_read_group_add(struct perf_event *leader,
return ret;
raw_spin_lock_irqsave(&ctx->lock, flags);
/*
* Verify the grouping between the parent and child (inherited)
* events is still in tact.
*
* Specifically:
* - leader->ctx->lock pins leader->sibling_list
* - parent->child_mutex pins parent->child_list
* - parent->ctx->mutex pins parent->sibling_list
*
* Because parent->ctx != leader->ctx (and child_list nests inside
* ctx->mutex), group destruction is not atomic between children, also
* see perf_event_release_kernel(). Additionally, parent can grow the
* group.
*
* Therefore it is possible to have parent and child groups in a
* different configuration and summing over such a beast makes no sense
* what so ever.
*
* Reject this.
*/
parent = leader->parent;
if (parent &&
(parent->group_generation != leader->group_generation ||
parent->nr_siblings != leader->nr_siblings)) {
ret = -ECHILD;
goto unlock;
}
/*
* Since we co-schedule groups, {enabled,running} times of siblings
@@ -5203,8 +5232,9 @@ static int __perf_read_group_add(struct perf_event *leader,
values[n++] = primary_event_id(sub);
}
unlock:
raw_spin_unlock_irqrestore(&ctx->lock, flags);
return 0;
return ret;
}
static int perf_read_group(struct perf_event *event,
@@ -5223,10 +5253,6 @@ static int perf_read_group(struct perf_event *event,
values[0] = 1 + leader->nr_siblings;
/*
* By locking the child_mutex of the leader we effectively
* lock the child list of all siblings.. XXX explain how.
*/
mutex_lock(&leader->child_mutex);
ret = __perf_read_group_add(leader, read_format, values);
@@ -12775,6 +12801,7 @@ static int inherit_group(struct perf_event *parent_event,
!perf_get_aux_event(child_ctr, leader))
return -EINVAL;
}
leader->group_generation = parent_event->group_generation;
return 0;
}