[PATCH v2 0/4] perf annotate-data: Support flexible array types

Namhyung Kim posted 4 patches 1 week, 4 days ago
There is a newer version of this series
tools/perf/ui/browsers/annotate-data.c |  10 +-
tools/perf/util/annotate-data.c        | 209 +++++++++++++++++--------
tools/perf/util/annotate-data.h        |  10 +-
tools/perf/util/dwarf-aux.c            |  77 +++++++++
tools/perf/util/dwarf-aux.h            |   3 +
5 files changed, 241 insertions(+), 68 deletions(-)
[PATCH v2 0/4] perf annotate-data: Support flexible array types
Posted by Namhyung Kim 1 week, 4 days ago
Hello,

The flexible arrays are dynamically allocated with different size.  So checking
with the original type size won't match and cannot match the sample.  This patch
series detects those flex-arrays and allows accesses beyond the original size.

I'm not sure what's the best way to add test codes for data type profiling as it
seems we need to add a lot more workloads for different cases.  Probably we may
want to split the workloads as separate binaries.

v2 changes)
 * fix missing index increment in the histogram
 * support flex array in union types
 * add recursion check in die_has_flex_array()
 * check negative index arrays properly
 * avoid divide-by-zero when the size is unknown

v1: https://lore.kernel.org/r/20260912054706.1475583-1-namhyung@kernel.org

Thanks,
Namhyung


Cc: Zecheng Li <zli94@ncsu.edu>
Cc: Yanbo Zhao <yzhao62@ncsu.edu>
Cc: Tengda Wu <wutengda@huaweicloud.com>
Cc: Shuai Xue <xueshuai@linux.alibaba.com>

Namhyung Kim (4):
  perf annotate-data: Convert type histogram to hashmap
  perf dwarf-aux: Add die_has_flex_array() helper
  perf annotate-date: Allow out-of-size access for flex-array types
  perf annotate-data: Adjust type offset for flex-array

 tools/perf/ui/browsers/annotate-data.c |  10 +-
 tools/perf/util/annotate-data.c        | 209 +++++++++++++++++--------
 tools/perf/util/annotate-data.h        |  10 +-
 tools/perf/util/dwarf-aux.c            |  77 +++++++++
 tools/perf/util/dwarf-aux.h            |   3 +
 5 files changed, 241 insertions(+), 68 deletions(-)

-- 
2.55.0.1032.g73a4cd73de-goog