mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Wang Nan <wangnan0@huawei.com>
To: <ast@kernel.org>, <acme@kernel.org>, <acme@redhat.com>,
	<brendan.d.gregg@gmail.com>, <davem@davemloft.net>,
	<hekuang@huawei.com>, <jolsa@kernel.org>,
	<masami.hiramatsu.pt@hitachi.com>, <namhyung@kernel.org>,
	<naveen.n.rao@linux.vnet.ibm.com>, <sukadev@linux.vnet.ibm.com>,
	<wangnan0@huawei.com>, <lizefan@huawei.com>
Cc: <pi3orama@163.com>, <linux-kernel@vger.kernel.org>
Subject: [PATCH v6 07/16] perf test: Check environment before start real BPF test
Date: Thu, 17 Dec 2015 10:55:15 +0000	[thread overview]
Message-ID: <1450349724-178569-8-git-send-email-wangnan0@huawei.com> (raw)
In-Reply-To: <1450349724-178569-1-git-send-email-wangnan0@huawei.com>

Copying perf to old kernel system results:

 # perf test bpf
 37: Test BPF filter                                          :
 37.1: Test basic BPF filtering                               : FAILED!
 37.2: Test BPF prologue generation                           : Skip

However, in case when kernel doesn't support a test case it should
return 'Skip', 'FAILED!' should be reserved for kernel tests for when
the kernel supports a feature that then fails to work as advertised.

This patch checks environment before real testcase.

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/tests/bpf.c | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/tools/perf/tests/bpf.c b/tools/perf/tests/bpf.c
index 33689a0..826b4b3 100644
--- a/tools/perf/tests/bpf.c
+++ b/tools/perf/tests/bpf.c
@@ -1,7 +1,11 @@
 #include <stdio.h>
 #include <sys/epoll.h>
+#include <util/util.h>
 #include <util/bpf-loader.h>
 #include <util/evlist.h>
+#include <linux/bpf.h>
+#include <linux/filter.h>
+#include <bpf/bpf.h>
 #include "tests.h"
 #include "llvm.h"
 #include "debug.h"
@@ -227,6 +231,36 @@ const char *test__bpf_subtest_get_desc(int i)
 	return bpf_testcase_table[i].desc;
 }
 
+static int check_env(void)
+{
+	int err;
+	unsigned int kver_int;
+	char license[] = "GPL";
+
+	struct bpf_insn insns[] = {
+		BPF_MOV64_IMM(BPF_REG_0, 1),
+		BPF_EXIT_INSN(),
+	};
+
+	err = fetch_kernel_version(&kver_int, NULL, 0);
+	if (err) {
+		pr_debug("Unable to get kernel version\n");
+		return err;
+	}
+
+	err = bpf_load_program(BPF_PROG_TYPE_KPROBE, insns,
+			       sizeof(insns) / sizeof(insns[0]),
+			       license, kver_int, NULL, 0);
+	if (err < 0) {
+		pr_err("Missing basic BPF support, skip this test: %s\n",
+		       strerror(errno));
+		return err;
+	}
+	close(err);
+
+	return 0;
+}
+
 int test__bpf(int i)
 {
 	int err;
@@ -239,6 +273,9 @@ int test__bpf(int i)
 		return TEST_SKIP;
 	}
 
+	if (check_env())
+		return TEST_SKIP;
+
 	err = __test__bpf(i);
 	return err;
 }
-- 
1.8.3.4


  parent reply	other threads:[~2015-12-17 11:01 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-17 10:55 [PATCH v6 00/16] perf tools: BPF related update and other improvements Wang Nan
2015-12-17 10:55 ` [PATCH v6 01/16] perf tools: Fix PowerPC native building Wang Nan
2015-12-17 10:55 ` [PATCH v6 02/16] tools: Move Makefile.arch from perf/config to tools/scripts Wang Nan
2015-12-17 10:55 ` [PATCH v6 03/16] perf: bpf: Fix build breakage due to libbpf Wang Nan
2015-12-17 10:55 ` [PATCH v6 04/16] perf test: Fix false TEST_OK result for 'perf test hist' Wang Nan
2015-12-17 10:55 ` [PATCH v6 05/16] perf test: Reset err after using it hold errcode in hist testcases Wang Nan
2015-12-17 10:55 ` [PATCH v6 06/16] perf tools: Prevent calling machine__delete() on non-allocated machine Wang Nan
2015-12-17 10:55 ` Wang Nan [this message]
2015-12-17 10:55 ` [PATCH v6 08/16] perf tools: Add API to config maps in bpf object Wang Nan
2015-12-17 10:55 ` [PATCH v6 09/16] perf tools: Enable BPF object configure syntax Wang Nan
2015-12-17 10:55 ` [PATCH v6 10/16] perf record: Apply config to BPF objects before recording Wang Nan
2015-12-17 10:55 ` [PATCH v6 11/16] perf tools: Enable passing event to BPF object Wang Nan
2015-12-17 10:55 ` [PATCH v6 12/16] perf tools: Support perf event alias name Wang Nan
2015-12-17 10:55 ` [PATCH v6 13/16] perf tools: Support setting different slots in a BPF map separately Wang Nan
2015-12-17 10:55 ` [PATCH v6 14/16] perf tools: Enable indices setting syntax for BPF maps Wang Nan
2015-12-17 10:55 ` [PATCH v6 15/16] perf tools: Introduce bpf-output event Wang Nan
2015-12-17 10:55 ` [PATCH v6 16/16] perf data: Support converting data from bpf_perf_event_output() Wang Nan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1450349724-178569-8-git-send-email-wangnan0@huawei.com \
    --to=wangnan0@huawei.com \
    --cc=acme@kernel.org \
    --cc=acme@redhat.com \
    --cc=ast@kernel.org \
    --cc=brendan.d.gregg@gmail.com \
    --cc=davem@davemloft.net \
    --cc=hekuang@huawei.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizefan@huawei.com \
    --cc=masami.hiramatsu.pt@hitachi.com \
    --cc=namhyung@kernel.org \
    --cc=naveen.n.rao@linux.vnet.ibm.com \
    --cc=pi3orama@163.com \
    --cc=sukadev@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®