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

tools headers UAPI: Sync linux/perf_event.h for deferred callchains

It needs to sync with the kernel to support user space changes for the
deferred callchains.

Reviewed-by: Ian Rogers <irogers@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>

+20 -1
+20 -1
tools/include/uapi/linux/perf_event.h
··· 464 464 inherit_thread : 1, /* children only inherit if cloned with CLONE_THREAD */ 465 465 remove_on_exec : 1, /* event is removed from task on exec */ 466 466 sigtrap : 1, /* send synchronous SIGTRAP on event */ 467 - __reserved_1 : 26; 467 + defer_callchain: 1, /* request PERF_RECORD_CALLCHAIN_DEFERRED records */ 468 + defer_output : 1, /* output PERF_RECORD_CALLCHAIN_DEFERRED records */ 469 + __reserved_1 : 24; 468 470 469 471 union { 470 472 __u32 wakeup_events; /* wake up every n events */ ··· 1243 1241 */ 1244 1242 PERF_RECORD_AUX_OUTPUT_HW_ID = 21, 1245 1243 1244 + /* 1245 + * This user callchain capture was deferred until shortly before 1246 + * returning to user space. Previous samples would have kernel 1247 + * callchains only and they need to be stitched with this to make full 1248 + * callchains. 1249 + * 1250 + * struct { 1251 + * struct perf_event_header header; 1252 + * u64 cookie; 1253 + * u64 nr; 1254 + * u64 ips[nr]; 1255 + * struct sample_id sample_id; 1256 + * }; 1257 + */ 1258 + PERF_RECORD_CALLCHAIN_DEFERRED = 22, 1259 + 1246 1260 PERF_RECORD_MAX, /* non-ABI */ 1247 1261 }; 1248 1262 ··· 1289 1271 PERF_CONTEXT_HV = (__u64)-32, 1290 1272 PERF_CONTEXT_KERNEL = (__u64)-128, 1291 1273 PERF_CONTEXT_USER = (__u64)-512, 1274 + PERF_CONTEXT_USER_DEFERRED = (__u64)-640, 1292 1275 1293 1276 PERF_CONTEXT_GUEST = (__u64)-2048, 1294 1277 PERF_CONTEXT_GUEST_KERNEL = (__u64)-2176,