Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf tools: Allow auxtrace data alignment

Allow auxtrace data to be a multiple of something other than page size.
That is needed for BTS where the buffer contains 24-byte records.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/r/1432906425-9911-11-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Adrian Hunter and committed by
Arnaldo Carvalho de Melo
83b2ea25 38e89d2b

+8
+7
tools/perf/util/auxtrace.c
··· 1182 1182 data2 = NULL; 1183 1183 } 1184 1184 1185 + if (itr->alignment) { 1186 + unsigned int unwanted = len1 % itr->alignment; 1187 + 1188 + len1 -= unwanted; 1189 + size -= unwanted; 1190 + } 1191 + 1185 1192 /* padding must be written by fn() e.g. record__process_auxtrace() */ 1186 1193 padding = size & 7; 1187 1194 if (padding)
+1
tools/perf/util/auxtrace.h
··· 303 303 const char *str); 304 304 u64 (*reference)(struct auxtrace_record *itr); 305 305 int (*read_finish)(struct auxtrace_record *itr, int idx); 306 + unsigned int alignment; 306 307 }; 307 308 308 309 #ifdef HAVE_AUXTRACE_SUPPORT