|
|
@@ -18,6 +18,32 @@
|
|
|
#define PERF_TP_SAMPLE_TYPE (PERF_SAMPLE_RAW | PERF_SAMPLE_TIME | \
|
|
|
PERF_SAMPLE_CPU | PERF_SAMPLE_PERIOD)
|
|
|
|
|
|
+#if defined(__s390x__)
|
|
|
+/* Return true if kvm module is available and loaded. Test this
|
|
|
+ * and retun success when trace point kvm_s390_create_vm
|
|
|
+ * exists. Otherwise this test always fails.
|
|
|
+ */
|
|
|
+static bool kvm_s390_create_vm_valid(void)
|
|
|
+{
|
|
|
+ char *eventfile;
|
|
|
+ bool rc = false;
|
|
|
+
|
|
|
+ eventfile = get_events_file("kvm-s390");
|
|
|
+
|
|
|
+ if (eventfile) {
|
|
|
+ DIR *mydir = opendir(eventfile);
|
|
|
+
|
|
|
+ if (mydir) {
|
|
|
+ rc = true;
|
|
|
+ closedir(mydir);
|
|
|
+ }
|
|
|
+ put_events_file(eventfile);
|
|
|
+ }
|
|
|
+
|
|
|
+ return rc;
|
|
|
+}
|
|
|
+#endif
|
|
|
+
|
|
|
static int test__checkevent_tracepoint(struct perf_evlist *evlist)
|
|
|
{
|
|
|
struct perf_evsel *evsel = perf_evlist__first(evlist);
|
|
|
@@ -1622,6 +1648,7 @@ static struct evlist_test test__events[] = {
|
|
|
{
|
|
|
.name = "kvm-s390:kvm_s390_create_vm",
|
|
|
.check = test__checkevent_tracepoint,
|
|
|
+ .valid = kvm_s390_create_vm_valid,
|
|
|
.id = 100,
|
|
|
},
|
|
|
#endif
|