diff options
Diffstat (limited to 'meta/recipes-kernel/oprofile/oprofile/0001-Handle-early-perf_events-kernel-without-PERF_RECORD_.patch')
-rw-r--r-- | meta/recipes-kernel/oprofile/oprofile/0001-Handle-early-perf_events-kernel-without-PERF_RECORD_.patch | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/meta/recipes-kernel/oprofile/oprofile/0001-Handle-early-perf_events-kernel-without-PERF_RECORD_.patch b/meta/recipes-kernel/oprofile/oprofile/0001-Handle-early-perf_events-kernel-without-PERF_RECORD_.patch deleted file mode 100644 index 894e99aec8..0000000000 --- a/meta/recipes-kernel/oprofile/oprofile/0001-Handle-early-perf_events-kernel-without-PERF_RECORD_.patch +++ /dev/null @@ -1,107 +0,0 @@ -Upstream-Status: Backport - -From dbe24f5f0d98b1fe5517d2b137b4c59766e536ad Mon Sep 17 00:00:00 2001 -From: Maynard Johnson <maynardj@us.ibm.com> -Date: Mon, 19 Nov 2012 15:16:37 -0600 -Subject: [PATCH] Handle early perf_events kernel without - PERF_RECORD_MISC_GUEST* macros - -In very early versions of perf_events kernel subsystem, the -PERF_RECORD_MISC_GUEST_KERNEL and PERF_RECORD_MISC_GUEST_USER -macros (in perf_event.h) were not yet defined. This patch adds -a configure check to determine when it's OK for source code to refer -to those macros. - -This patch also does some minor cleanup of the configure script -help and warning messages relating to the --with-kernel option. - -Signed-off-by: Maynard Johnson <maynardj@us.ibm.com> ---- - configure.ac | 32 ++++++++++++++++++++++++++------ - libperf_events/operf_utils.cpp | 2 ++ - 2 files changed, 28 insertions(+), 6 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 7449854..18d1169 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -60,12 +60,12 @@ test "$LD" || AC_ERROR(ld not found) - - # --with-kernel for cross compilation - AC_ARG_WITH(kernel, --[AS_HELP_STRING([--with-kernel=dir], [Path to kernel include directory (...include/linux/perf_event.h) to use. -+[AS_HELP_STRING([--with-kernel=dir], [Path to kernel include directory (e.g. /tmp/linux-xyz) to use. - If this option is not specified, configure will look for kernel header files in the usual installation location --for a kernel-headers package -- /usr/include. Use this option in cross-compile enviroments -+for a kernel-headers package -- /usr. Use this option in cross-compile enviroments - or in situations where the host system does not support perf_events but you wish to build binaries --for a target system that does support perf_events. Because of OProfile's use of syscalls, be sure that the --kernel headers used match the architecture of the intended target system.])], -+for a target system that does support perf_events. Because of OProfile's use of syscalls, -+kernel headers used during build must match the architecture of the intended target system.])], - KERNELDIR=$withval) - - -@@ -92,10 +92,29 @@ AC_CHECK_HEADER($PERF_EVENT_H,PERF_EVENT_H_EXISTS="yes") - AM_CONDITIONAL(BUILD_FOR_PERF_EVENT, test -n "$PERF_EVENT_H_EXISTS") - if test "$PERF_EVENT_H_EXISTS" = "yes"; then - HAVE_PERF_EVENTS='1' -+ - if test "$KERNELDIR" != ""; then - PERF_EVENT_FLAGS=" -I$KERNELDIR/include" - AC_SUBST(PERF_EVENT_FLAGS) - fi -+ -+ AC_MSG_CHECKING([whether PERF_RECORD_MISC_GUEST_KERNEL is defined in perf_event.h]) -+ rm -f test-for-PERF_GUEST -+ AC_LANG_CONFTEST( -+ [AC_LANG_PROGRAM([[#include <linux/perf_event.h>]], -+ [[unsigned int pr_guest_kern = PERF_RECORD_MISC_GUEST_KERNEL; -+ unsigned int pr_guest_user = PERF_RECORD_MISC_GUEST_USER;]]) -+ ]) -+ $CC conftest.$ac_ext $CFLAGS $LDFLAGS $LIBS $PERF_EVENT_FLAGS -o test-for-PERF_GUEST > /dev/null 2>&1 -+ if test -f test-for-PERF_GUEST; then -+ echo "yes" -+ HAVE_PERF_GUEST_MACROS='1' -+ else -+ echo "no" -+ HAVE_PERF_GUEST_MACROS='0' -+ fi -+ AC_DEFINE_UNQUOTED(HAVE_PERF_GUEST_MACROS, $HAVE_PERF_GUEST_MACROS, [PERF_RECORD_MISC_GUEST_KERNEL is defined in perf_event.h]) -+ rm -f test-for-PERF_GUEST* - else - HAVE_PERF_EVENTS='0' - fi -@@ -416,7 +435,8 @@ elif test "`getent passwd oprofile 2>/dev/null`" == "" || \ - fi - - if test "$PERF_EVENT_H_EXISTS" != "yes" && test "$kernel_has_perf_events_support" = "yes"; then -- echo "Warning: perf_event.h not found. Please install the kernel headers package if you" -- echo " want non-root support built into OProfile." -+ echo "Warning: perf_event.h not found. Either install the kernel headers package or" -+ echo "use the --with-kernel option if you want the non-root, single application" -+ echo "profiling support provided by operf." - fi - -diff --git a/libperf_events/operf_utils.cpp b/libperf_events/operf_utils.cpp -index 06cd566..470cfba 100644 ---- a/libperf_events/operf_utils.cpp -+++ b/libperf_events/operf_utils.cpp -@@ -732,12 +732,14 @@ static void __handle_sample_event(event_t * event, u64 sample_type) - case PERF_RECORD_MISC_HYPERVISOR: - domain = "hypervisor"; - break; -+#if HAVE_PERF_GUEST_MACROS - case PERF_RECORD_MISC_GUEST_KERNEL: - domain = "guest OS"; - break; - case PERF_RECORD_MISC_GUEST_USER: - domain = "guest user"; - break; -+#endif - default: - domain = "unknown"; - break; --- -1.7.9.7 - |