Skip to contentSkip to conversation

tracing/intel_pt: Fix build on older userspace.

PATCH New Cyril Hrubis 4 participants 5 messages Oct 17, 2018 – Oct 18, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 tracing/intel_pt: Fix build on older userspace.

Older userspace linux headers do not have aux_* fields struct perf_event_mmap_page. This commit disables the test build if older headers were detected, the alternative would be adding a fallback definition to LTP but I doubt that it's worth the effort.

---
 configure.ac                               |  1 +
 m4/ltp-perf_event.m4                       | 13 +++++++++++++
 testcases/kernel/tracing/pt_test/pt_test.c |  7 +++++++
 3 files changed, 21 insertions(+)
 create mode 100644 m4/ltp-perf_event.m4
configure.ac +1 -0
index 0f0d8c17a..e81d2add5 100644
@@ -229,6 +229,7 @@ LTP_CHECK_X_TABLES
 LTP_CHECK_ATOMIC_MEMORY_MODEL
 LTP_CHECK_TPACKET_V3
 LTP_DETECT_HOST_CPU
+LTP_CHECK_PERF_EVENT
 
 if test "x$with_numa" = xyes; then
 	LTP_CHECK_SYSCALL_NUMA
m4/ltp-perf_event.m4 new file +13 -0
new file mode 100644
index 000000000..109ad4935
@@ -0,0 +1,13 @@
+dnl
+dnl Copyright (c) 2018 Cyril Hrubis <[email protected]>
+dnl
+dnl SPDX-License-Identifier: GPL-2.0-or-later
+dnl
+
+dnl
+dnl LTP_CHECK_PERF_EVENT
+dnl ----------------------------
+dnl
+AC_DEFUN([LTP_CHECK_PERF_EVENT],[
+AC_CHECK_MEMBERS([struct perf_event_mmap_page.aux_head],,,[#include <linux/perf_event.h>])
+])
testcases/kernel/tracing/pt_test/pt_test.c +7 -0
index 517427992..abf575d37 100644
@@ -20,6 +20,9 @@
 #include <stdio.h>
 #include "tst_test.h"
 #include "lapi/syscalls.h"
+#include "config.h"
+
+#ifdef HAVE_STRUCT_PERF_EVENT_MMAP_PAGE_AUX_HEAD
 
 #define PAGESIZE 4096
 #define INTEL_PT_MEMSIZE (17*PAGESIZE)
@@ -157,3 +160,7 @@ static struct tst_test test = {
 	.cleanup = cleanup,
 	.needs_root = 1,
 };
+
+#else
+TST_TEST_TCONF("missing aux_* fields in struct perf_event_mmap_page");
+#endif /* HAVE_STRUCT_PERF_EVENT_MMAP_PAGE_AUX_HEAD */
Signature · 1 line
2.16.4
#1 lore raw

PATCH 1/1 tracing/intel_pt: Fix build on older userspace.

Hi Cyril,

Quoted 7 lines

Older userspace linux headers do not have aux_* fields struct perf_event_mmap_page. This commit disables the test build if older headers were detected, the alternative would be adding a fallback definition to LTP but I doubt that it's worth the effort.

Thanks for fixing it.

Kind regards,
Petr

#2 lore raw

PATCH 1/1 tracing/intel_pt: Fix build on older userspace.

In reply to Cyril Hrubis

----- Original Message -----

Quoted 7 lines

Older userspace linux headers do not have aux_* fields struct perf_event_mmap_page. This commit disables the test build if older headers were detected, the alternative would be adding a fallback definition to LTP but I doubt that it's worth the effort.

ack, fixes build for me too

Quoted 69 lines
---
 configure.ac                               |  1 +
 m4/ltp-perf_event.m4                       | 13 +++++++++++++
 testcases/kernel/tracing/pt_test/pt_test.c |  7 +++++++
 3 files changed, 21 insertions(+)
 create mode 100644 m4/ltp-perf_event.m4
configure.ac +1 -0
index 0f0d8c17a..e81d2add5 100644
@@ -229,6 +229,7 @@ LTP_CHECK_X_TABLES
 LTP_CHECK_ATOMIC_MEMORY_MODEL
 LTP_CHECK_TPACKET_V3
 LTP_DETECT_HOST_CPU
+LTP_CHECK_PERF_EVENT
 
 if test "x$with_numa" = xyes; then
 	LTP_CHECK_SYSCALL_NUMA
m4/ltp-perf_event.m4 new file +12 -0
new file mode 100644
index 000000000..109ad4935
@@ -0,0 +1,13 @@
+dnl
+dnl Copyright (c) 2018 Cyril Hrubis <[email protected]>
+dnl
+dnl SPDX-License-Identifier: GPL-2.0-or-later
+dnl
+
+dnl
+dnl LTP_CHECK_PERF_EVENT
+dnl ----------------------------
+dnl
+AC_DEFUN([LTP_CHECK_PERF_EVENT],[
+AC_CHECK_MEMBERS([struct perf_event_mmap_page.aux_head],,,[#include

<linux/perf_event.h>])
+])

testcases/kernel/tracing/pt_test/pt_test.c +7 -1
index 517427992..abf575d37 100644
@@ -20,6 +20,9 @@
 #include <stdio.h>
 #include "tst_test.h"
 #include "lapi/syscalls.h"
+#include "config.h"
+
+#ifdef HAVE_STRUCT_PERF_EVENT_MMAP_PAGE_AUX_HEAD
 
 #define PAGESIZE 4096
 #define INTEL_PT_MEMSIZE (17*PAGESIZE)
@@ -157,3 +160,7 @@ static struct tst_test test = {
 	.cleanup = cleanup,
 	.needs_root = 1,
 };
+
+#else
+TST_TEST_TCONF("missing aux_* fields in struct perf_event_mmap_page");
+#endif /* HAVE_STRUCT_PERF_EVENT_MMAP_PAGE_AUX_HEAD */
--

2.16.4

--
Mailing list info: https://lists.linux.it/listinfo/ltp

#3 lore raw

PATCH 1/1 tracing/intel_pt: Fix build on older userspace.

In reply to Cyril Hrubis

Hi Cyril,

Thanks for fixing this for Intel PT test.

Best Regards
Ammy Yi

-----Original Message-----
From: Cyril Hrubis [mailto:[email protected]]
Sent: Wednesday, October 17, 2018 11:39 PM
To: [email protected]
Cc: Yi, Ammy <[email protected]>
Subject: [PATCH] tracing/intel_pt: Fix build on older userspace.

Older userspace linux headers do not have aux_* fields struct perf_event_mmap_page. This commit disables the test build if older headers were detected, the alternative would be adding a fallback definition to LTP but I doubt that it's worth the effort.

---
 configure.ac                               |  1 +
 m4/ltp-perf_event.m4                       | 13 +++++++++++++
 testcases/kernel/tracing/pt_test/pt_test.c |  7 +++++++
 3 files changed, 21 insertions(+)
 create mode 100644 m4/ltp-perf_event.m4
configure.ac +1 -0
@@ -229,6 +229,7 @@ LTP_CHECK_X_TABLES
 LTP_CHECK_ATOMIC_MEMORY_MODEL
 LTP_CHECK_TPACKET_V3
 LTP_DETECT_HOST_CPU
+LTP_CHECK_PERF_EVENT
 
 if test "x$with_numa" = xyes; then
 	LTP_CHECK_SYSCALL_NUMA
m4/ltp-perf_event.m4 new file +12 -0
@@ -0,0 +1,13 @@
+dnl
+dnl Copyright (c) 2018 Cyril Hrubis <[email protected]> dnl dnl 
+SPDX-License-Identifier: GPL-2.0-or-later dnl
+
+dnl
+dnl LTP_CHECK_PERF_EVENT
+dnl ----------------------------
+dnl
+AC_DEFUN([LTP_CHECK_PERF_EVENT],[
+AC_CHECK_MEMBERS([struct perf_event_mmap_page.aux_head],,,[#include 
+<linux/perf_event.h>])
+])
testcases/kernel/tracing/pt_test/pt_test.c +7 -0
index 517427992..abf575d37 100644
@@ -20,6 +20,9 @@
 #include <stdio.h>
 #include "tst_test.h"
 #include "lapi/syscalls.h"
+#include "config.h"
+
+#ifdef HAVE_STRUCT_PERF_EVENT_MMAP_PAGE_AUX_HEAD
 
 #define PAGESIZE 4096
 #define INTEL_PT_MEMSIZE (17*PAGESIZE)
@@ -157,3 +160,7 @@ static struct tst_test test = {
 	.cleanup = cleanup,
 	.needs_root = 1,
 };
+
+#else
+TST_TEST_TCONF("missing aux_* fields in struct perf_event_mmap_page"); 
+#endif /* HAVE_STRUCT_PERF_EVENT_MMAP_PAGE_AUX_HEAD */

--
2.16.4