Pull perf updates from Ingo Molnar: "The main changes in this cycle were: Kernel side changes: - Kprobes and uprobes changes: - Make their trampolines read-only while they are used - Make UPROBES_EVENTS default-y which is the distro practice - Apply misc fixes and robustization to probe point insertion. - add support for AMD IOMMU events - extend hw events on Intel Goldmont CPUs - ... plus misc fixes and updates. Tooling side changes: - support s390 jump instructions in perf annotate (Christian Borntraeger) - vendor hardware events updates (Andi Kleen) - add argument support for SDT events in powerpc (Ravi Bangoria) - beautify the statx syscall arguments in 'perf trace' (Arnaldo Carvalho de Melo) - handle inline functions in callchains (Jin Yao) - enable sorting by srcline as key (Milian Wolff) - add 'brstackinsn' field in 'perf script' to reuse the x86 instruction decoder used in the Intel PT code to study hot paths to samples (Andi Kleen) - add PERF_RECORD_NAMESPACES so that the kernel can record information required to associate samples to namespaces, helping in container problem characterization. (Hari Bathini) - allow sorting by symbol_size in 'perf report' and 'perf top' (Charles Baylis) - in perf stat, make system wide (-a) the default option if no target was specified and one of following conditions is met: - no workload specified (current behaviour) - a workload is specified but all requested events are system wide ones, like uncore ones. (Jiri Olsa) - ... plus lots of other updates, enhancements, cleanups and fixes" * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (235 commits) perf tools: Fix the code to strip command name tools arch x86: Sync cpufeatures.h tools arch: Sync arch/x86/lib/memcpy_64.S with the kernel tools: Update asm-generic/mman-common.h copy from the kernel perf tools: Use just forward declarations for struct thread where possible perf tools: Add the right header to obtain PERF_ALIGN() perf tools: Remove poll.h and wait.h from util.h perf tools: Remove string.h, unistd.h and sys/stat.h from util.h perf tools: Remove stale prototypes from builtin.h perf tools: Remove string.h from util.h perf tools: Remove sys/ioctl.h from util.h perf tools: Remove a few more needless includes from util.h perf tools: Include sys/param.h where needed perf callchain: Move callchain specific routines from util.[ch] perf tools: Add compress.h for the *_decompress_to_file() headers perf mem: Fix display of data source snoop indication perf debug: Move dump_stack() and sighandler_dump_stack() to debug.h perf kvm: Make function only used by 'perf kvm' static perf tools: Move timestamp routines from util.h to time-utils.h perf tools: Move units conversion/formatting routines to separate object ...
Showing the changes to include/uapi/linux (1 of 360 files). Show all
Unified · Split
| @@ -344,7 +344,8 @@ struct perf_event_attr { · 343 unmodified lines | |||
| 344 | use_clockid : 1, /* use @clockid for time fields */ | 344 | use_clockid : 1, /* use @clockid for time fields */ |
| 345 | context_switch : 1, /* context switch data */ | 345 | context_switch : 1, /* context switch data */ |
| 346 | write_backward : 1, /* Write ring buffer from end to beginning */ | 346 | write_backward : 1, /* Write ring buffer from end to beginning */ |
| 347 | __reserved_1 : 36; | 347 | namespaces : 1, /* include namespaces data */ |
| 348 | __reserved_1 : 35; | ||
| 348 | 349 | ||
| 349 | union { | 350 | union { |
| 350 | __u32 wakeup_events; /* wakeup every n events */ | 351 | __u32 wakeup_events; /* wakeup every n events */ |
| @@ -610,6 +611,23 @@ struct perf_event_header { · 259 unmodified lines | |||
| 610 | __u16 size; | 611 | __u16 size; |
| 611 | }; | 612 | }; |
| 612 | 613 | ||
| 614 | struct perf_ns_link_info { | ||
| 615 | __u64 dev; | ||
| 616 | __u64 ino; | ||
| 617 | }; | ||
| 618 | |||
| 619 | enum { | ||
| 620 | NET_NS_INDEX = 0, | ||
| 621 | UTS_NS_INDEX = 1, | ||
| 622 | IPC_NS_INDEX = 2, | ||
| 623 | PID_NS_INDEX = 3, | ||
| 624 | USER_NS_INDEX = 4, | ||
| 625 | MNT_NS_INDEX = 5, | ||
| 626 | CGROUP_NS_INDEX = 6, | ||
| 627 | |||
| 628 | NR_NAMESPACES, /* number of available namespaces */ | ||
| 629 | }; | ||
| 630 | |||
| 613 | enum perf_event_type { | 631 | enum perf_event_type { |
| 614 | 632 | ||
| 615 | /* | 633 | /* |
| @@ -862,6 +880,18 @@ enum perf_event_type { · 246 unmodified lines | |||
| 862 | */ | 880 | */ |
| 863 | PERF_RECORD_SWITCH_CPU_WIDE = 15, | 881 | PERF_RECORD_SWITCH_CPU_WIDE = 15, |
| 864 | 882 | ||
| 883 | /* | ||
| 884 | * struct { | ||
| 885 | * struct perf_event_header header; | ||
| 886 | * u32 pid; | ||
| 887 | * u32 tid; | ||
| 888 | * u64 nr_namespaces; | ||
| 889 | * { u64 dev, inode; } [nr_namespaces]; | ||
| 890 | * struct sample_id sample_id; | ||
| 891 | * }; | ||
| 892 | */ | ||
| 893 | PERF_RECORD_NAMESPACES = 16, | ||
| 894 | |||
| 865 | PERF_RECORD_MAX, /* non-ABI */ | 895 | PERF_RECORD_MAX, /* non-ABI */ |
| 866 | }; | 896 | }; |
| 867 | 897 | ||
| @@ -885,6 +915,7 @@ enum perf_callchain_context { · 17 unmodified lines | |||
| 885 | */ | 915 | */ |
| 886 | #define PERF_AUX_FLAG_TRUNCATED 0x01 /* record was truncated to fit */ | 916 | #define PERF_AUX_FLAG_TRUNCATED 0x01 /* record was truncated to fit */ |
| 887 | #define PERF_AUX_FLAG_OVERWRITE 0x02 /* snapshot from overwrite mode */ | 917 | #define PERF_AUX_FLAG_OVERWRITE 0x02 /* snapshot from overwrite mode */ |
| 918 | #define PERF_AUX_FLAG_PARTIAL 0x04 /* record contains gaps */ | ||
| 888 | 919 | ||
| 889 | #define PERF_FLAG_FD_NO_GROUP (1UL << 0) | 920 | #define PERF_FLAG_FD_NO_GROUP (1UL << 0) |
| 890 | #define PERF_FLAG_FD_OUTPUT (1UL << 1) | 921 | #define PERF_FLAG_FD_OUTPUT (1UL << 1) |