perf tools: Remove ext from struct kmod_path
authorJiri Olsa <jolsa@kernel.org>
Fri, 17 Aug 2018 09:48:13 +0000 (11:48 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 20 Aug 2018 11:54:59 +0000 (08:54 -0300)
Having comp carrying the compression ID, we no longer need return the
extension. Removing it and updating the automated test.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20180817094813.15086-14-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/tests/kmod-path.c
tools/perf/util/dso.c
tools/perf/util/dso.h

index f92f78f683eab27fda789571277a0bcda8776a00..0579a70bbbff139cfa6a4f2fffd20ac5cafd7dd0 100644 (file)
@@ -5,34 +5,28 @@
 #include "dso.h"
 #include "debug.h"
 
-static int test(const char *path, bool alloc_name, bool alloc_ext,
-               bool kmod, int comp, const char *name, const char *ext)
+static int test(const char *path, bool alloc_name, bool kmod,
+               int comp, const char *name)
 {
        struct kmod_path m;
 
        memset(&m, 0x0, sizeof(m));
 
        TEST_ASSERT_VAL("kmod_path__parse",
-                       !__kmod_path__parse(&m, path, alloc_name, alloc_ext));
+                       !__kmod_path__parse(&m, path, alloc_name));
 
-       pr_debug("%s - alloc name %d, alloc ext %d, kmod %d, comp %d, name '%s', ext '%s'\n",
-                path, alloc_name, alloc_ext, m.kmod, m.comp, m.name, m.ext);
+       pr_debug("%s - alloc name %d, kmod %d, comp %d, name '%s'\n",
+                path, alloc_name, m.kmod, m.comp, m.name);
 
        TEST_ASSERT_VAL("wrong kmod", m.kmod == kmod);
        TEST_ASSERT_VAL("wrong comp", m.comp == comp);
 
-       if (ext)
-               TEST_ASSERT_VAL("wrong ext", m.ext && !strcmp(ext, m.ext));
-       else
-               TEST_ASSERT_VAL("wrong ext", !m.ext);
-
        if (name)
                TEST_ASSERT_VAL("wrong name", m.name && !strcmp(name, m.name));
        else
                TEST_ASSERT_VAL("wrong name", !m.name);
 
        free(m.name);
-       free(m.ext);
        return 0;
 }
 
@@ -45,118 +39,118 @@ static int test_is_kernel_module(const char *path, int cpumode, bool expect)
        return 0;
 }
 
-#define T(path, an, ae, k, c, n, e) \
-       TEST_ASSERT_VAL("failed", !test(path, an, ae, k, c, n, e))
+#define T(path, an, k, c, n) \
+       TEST_ASSERT_VAL("failed", !test(path, an, k, c, n))
 
 #define M(path, c, e) \
        TEST_ASSERT_VAL("failed", !test_is_kernel_module(path, c, e))
 
 int test__kmod_path__parse(struct test *t __maybe_unused, int subtest __maybe_unused)
 {
-       /* path                alloc_name  alloc_ext   kmod  comp   name     ext */
-       T("/xxxx/xxxx/x-x.ko", true      , true      , true, 0    , "[x_x]", NULL);
-       T("/xxxx/xxxx/x-x.ko", false     , true      , true, 0    , NULL   , NULL);
-       T("/xxxx/xxxx/x-x.ko", true      , false     , true, 0    , "[x_x]", NULL);
-       T("/xxxx/xxxx/x-x.ko", false     , false     , true, 0    , NULL   , NULL);
+       /* path                alloc_name  kmod  comp   name   */
+       T("/xxxx/xxxx/x-x.ko", true      , true, 0    , "[x_x]");
+       T("/xxxx/xxxx/x-x.ko", false     , true, 0    , NULL   );
+       T("/xxxx/xxxx/x-x.ko", true      , true, 0    , "[x_x]");
+       T("/xxxx/xxxx/x-x.ko", false     , true, 0    , NULL   );
        M("/xxxx/xxxx/x-x.ko", PERF_RECORD_MISC_CPUMODE_UNKNOWN, true);
        M("/xxxx/xxxx/x-x.ko", PERF_RECORD_MISC_KERNEL, true);
        M("/xxxx/xxxx/x-x.ko", PERF_RECORD_MISC_USER, false);
 
 #ifdef HAVE_ZLIB_SUPPORT
-       /* path                alloc_name  alloc_ext   kmod  comp  name   ext */
-       T("/xxxx/xxxx/x.ko.gz", true     , true      , true, 1   , "[x]", "gz");
-       T("/xxxx/xxxx/x.ko.gz", false    , true      , true, 1   , NULL , "gz");
-       T("/xxxx/xxxx/x.ko.gz", true     , false     , true, 1   , "[x]", NULL);
-       T("/xxxx/xxxx/x.ko.gz", false    , false     , true, 1   , NULL , NULL);
+       /* path                alloc_name   kmod  comp  name  */
+       T("/xxxx/xxxx/x.ko.gz", true     , true, 1   , "[x]");
+       T("/xxxx/xxxx/x.ko.gz", false    , true, 1   , NULL );
+       T("/xxxx/xxxx/x.ko.gz", true     , true, 1   , "[x]");
+       T("/xxxx/xxxx/x.ko.gz", false    , true, 1   , NULL );
        M("/xxxx/xxxx/x.ko.gz", PERF_RECORD_MISC_CPUMODE_UNKNOWN, true);
        M("/xxxx/xxxx/x.ko.gz", PERF_RECORD_MISC_KERNEL, true);
        M("/xxxx/xxxx/x.ko.gz", PERF_RECORD_MISC_USER, false);
 
-       /* path              alloc_name  alloc_ext  kmod   comp  name    ext */
-       T("/xxxx/xxxx/x.gz", true      , true     , false, 1   , "x.gz" ,"gz");
-       T("/xxxx/xxxx/x.gz", false     , true     , false, 1   , NULL   ,"gz");
-       T("/xxxx/xxxx/x.gz", true      , false    , false, 1   , "x.gz" , NULL);
-       T("/xxxx/xxxx/x.gz", false     , false    , false, 1   , NULL   , NULL);
+       /* path              alloc_name  kmod   comp  name  */
+       T("/xxxx/xxxx/x.gz", true      , false, 1   , "x.gz");
+       T("/xxxx/xxxx/x.gz", false     , false, 1   , NULL  );
+       T("/xxxx/xxxx/x.gz", true      , false, 1   , "x.gz");
+       T("/xxxx/xxxx/x.gz", false     , false, 1   , NULL  );
        M("/xxxx/xxxx/x.gz", PERF_RECORD_MISC_CPUMODE_UNKNOWN, false);
        M("/xxxx/xxxx/x.gz", PERF_RECORD_MISC_KERNEL, false);
        M("/xxxx/xxxx/x.gz", PERF_RECORD_MISC_USER, false);
 
-       /* path   alloc_name  alloc_ext  kmod   comp  name     ext */
-       T("x.gz", true      , true     , false, 1   , "x.gz", "gz");
-       T("x.gz", false     , true     , false, 1   , NULL  , "gz");
-       T("x.gz", true      , false    , false, 1   , "x.gz", NULL);
-       T("x.gz", false     , false    , false, 1   , NULL  , NULL);
+       /* path   alloc_name  kmod   comp  name   */
+       T("x.gz", true      , false, 1   , "x.gz");
+       T("x.gz", false     , false, 1   , NULL  );
+       T("x.gz", true      , false, 1   , "x.gz");
+       T("x.gz", false     , false, 1   , NULL  );
        M("x.gz", PERF_RECORD_MISC_CPUMODE_UNKNOWN, false);
        M("x.gz", PERF_RECORD_MISC_KERNEL, false);
        M("x.gz", PERF_RECORD_MISC_USER, false);
 
-       /* path      alloc_name  alloc_ext  kmod  comp  name  ext */
-       T("x.ko.gz", true      , true     , true, 1   , "[x]", "gz");
-       T("x.ko.gz", false     , true     , true, 1   , NULL , "gz");
-       T("x.ko.gz", true      , false    , true, 1   , "[x]", NULL);
-       T("x.ko.gz", false     , false    , true, 1   , NULL , NULL);
+       /* path      alloc_name  kmod  comp  name  */
+       T("x.ko.gz", true      , true, 1   , "[x]");
+       T("x.ko.gz", false     , true, 1   , NULL );
+       T("x.ko.gz", true      , true, 1   , "[x]");
+       T("x.ko.gz", false     , true, 1   , NULL );
        M("x.ko.gz", PERF_RECORD_MISC_CPUMODE_UNKNOWN, true);
        M("x.ko.gz", PERF_RECORD_MISC_KERNEL, true);
        M("x.ko.gz", PERF_RECORD_MISC_USER, false);
 #endif
 
-       /* path            alloc_name  alloc_ext  kmod  comp   name             ext */
-       T("[test_module]", true      , true     , true, false, "[test_module]", NULL);
-       T("[test_module]", false     , true     , true, false, NULL           , NULL);
-       T("[test_module]", true      , false    , true, false, "[test_module]", NULL);
-       T("[test_module]", false     , false    , true, false, NULL           , NULL);
+       /* path            alloc_name  kmod  comp   name           */
+       T("[test_module]", true      , true, false, "[test_module]");
+       T("[test_module]", false     , true, false, NULL           );
+       T("[test_module]", true      , true, false, "[test_module]");
+       T("[test_module]", false     , true, false, NULL           );
        M("[test_module]", PERF_RECORD_MISC_CPUMODE_UNKNOWN, true);
        M("[test_module]", PERF_RECORD_MISC_KERNEL, true);
        M("[test_module]", PERF_RECORD_MISC_USER, false);
 
-       /* path            alloc_name  alloc_ext  kmod  comp   name             ext */
-       T("[test.module]", true      , true     , true, false, "[test.module]", NULL);
-       T("[test.module]", false     , true     , true, false, NULL           , NULL);
-       T("[test.module]", true      , false    , true, false, "[test.module]", NULL);
-       T("[test.module]", false     , false    , true, false, NULL           , NULL);
+       /* path            alloc_name  kmod  comp   name           */
+       T("[test.module]", true      , true, false, "[test.module]");
+       T("[test.module]", false     , true, false, NULL           );
+       T("[test.module]", true      , true, false, "[test.module]");
+       T("[test.module]", false     , true, false, NULL           );
        M("[test.module]", PERF_RECORD_MISC_CPUMODE_UNKNOWN, true);
        M("[test.module]", PERF_RECORD_MISC_KERNEL, true);
        M("[test.module]", PERF_RECORD_MISC_USER, false);
 
-       /* path     alloc_name  alloc_ext  kmod   comp   name      ext */
-       T("[vdso]", true      , true     , false, false, "[vdso]", NULL);
-       T("[vdso]", false     , true     , false, false, NULL    , NULL);
-       T("[vdso]", true      , false    , false, false, "[vdso]", NULL);
-       T("[vdso]", false     , false    , false, false, NULL    , NULL);
+       /* path     alloc_name  kmod   comp   name    */
+       T("[vdso]", true      , false, false, "[vdso]");
+       T("[vdso]", false     , false, false, NULL    );
+       T("[vdso]", true      , false, false, "[vdso]");
+       T("[vdso]", false     , false, false, NULL    );
        M("[vdso]", PERF_RECORD_MISC_CPUMODE_UNKNOWN, false);
        M("[vdso]", PERF_RECORD_MISC_KERNEL, false);
        M("[vdso]", PERF_RECORD_MISC_USER, false);
 
-       T("[vdso32]", true      , true     , false, false, "[vdso32]", NULL);
-       T("[vdso32]", false     , true     , false, false, NULL    , NULL);
-       T("[vdso32]", true      , false    , false, false, "[vdso32]", NULL);
-       T("[vdso32]", false     , false    , false, false, NULL    , NULL);
+       T("[vdso32]", true      , false, false, "[vdso32]");
+       T("[vdso32]", false     , false, false, NULL      );
+       T("[vdso32]", true      , false, false, "[vdso32]");
+       T("[vdso32]", false     , false, false, NULL      );
        M("[vdso32]", PERF_RECORD_MISC_CPUMODE_UNKNOWN, false);
        M("[vdso32]", PERF_RECORD_MISC_KERNEL, false);
        M("[vdso32]", PERF_RECORD_MISC_USER, false);
 
-       T("[vdsox32]", true      , true     , false, false, "[vdsox32]", NULL);
-       T("[vdsox32]", false     , true     , false, false, NULL    , NULL);
-       T("[vdsox32]", true      , false    , false, false, "[vdsox32]", NULL);
-       T("[vdsox32]", false     , false    , false, false, NULL    , NULL);
+       T("[vdsox32]", true      , false, false, "[vdsox32]");
+       T("[vdsox32]", false     , false, false, NULL       );
+       T("[vdsox32]", true      , false, false, "[vdsox32]");
+       T("[vdsox32]", false     , false, false, NULL       );
        M("[vdsox32]", PERF_RECORD_MISC_CPUMODE_UNKNOWN, false);
        M("[vdsox32]", PERF_RECORD_MISC_KERNEL, false);
        M("[vdsox32]", PERF_RECORD_MISC_USER, false);
 
-       /* path         alloc_name  alloc_ext  kmod   comp   name          ext */
-       T("[vsyscall]", true      , true     , false, false, "[vsyscall]", NULL);
-       T("[vsyscall]", false     , true     , false, false, NULL        , NULL);
-       T("[vsyscall]", true      , false    , false, false, "[vsyscall]", NULL);
-       T("[vsyscall]", false     , false    , false, false, NULL        , NULL);
+       /* path         alloc_name  kmod   comp   name        */
+       T("[vsyscall]", true      , false, false, "[vsyscall]");
+       T("[vsyscall]", false     , false, false, NULL        );
+       T("[vsyscall]", true      , false, false, "[vsyscall]");
+       T("[vsyscall]", false     , false, false, NULL        );
        M("[vsyscall]", PERF_RECORD_MISC_CPUMODE_UNKNOWN, false);
        M("[vsyscall]", PERF_RECORD_MISC_KERNEL, false);
        M("[vsyscall]", PERF_RECORD_MISC_USER, false);
 
-       /* path                alloc_name  alloc_ext  kmod   comp   name      ext */
-       T("[kernel.kallsyms]", true      , true     , false, false, "[kernel.kallsyms]", NULL);
-       T("[kernel.kallsyms]", false     , true     , false, false, NULL               , NULL);
-       T("[kernel.kallsyms]", true      , false    , false, false, "[kernel.kallsyms]", NULL);
-       T("[kernel.kallsyms]", false     , false    , false, false, NULL               , NULL);
+       /* path                alloc_name  kmod   comp   name      */
+       T("[kernel.kallsyms]", true      , false, false, "[kernel.kallsyms]");
+       T("[kernel.kallsyms]", false     , false, false, NULL               );
+       T("[kernel.kallsyms]", true      , false, false, "[kernel.kallsyms]");
+       T("[kernel.kallsyms]", false     , false, false, NULL               );
        M("[kernel.kallsyms]", PERF_RECORD_MISC_CPUMODE_UNKNOWN, false);
        M("[kernel.kallsyms]", PERF_RECORD_MISC_KERNEL, false);
        M("[kernel.kallsyms]", PERF_RECORD_MISC_USER, false);
index 8b9243f13b8852268601ce2e9c7704234dba5654..bbed90e5d9bb841782ed878a0c2ce1ae752418f9 100644 (file)
@@ -331,7 +331,7 @@ int dso__decompress_kmodule_path(struct dso *dso, const char *name,
  * Returns 0 if there's no strdup error, -ENOMEM otherwise.
  */
 int __kmod_path__parse(struct kmod_path *m, const char *path,
-                      bool alloc_name, bool alloc_ext)
+                      bool alloc_name)
 {
        const char *name = strrchr(path, '/');
        const char *ext  = strrchr(path, '.');
@@ -391,14 +391,6 @@ int __kmod_path__parse(struct kmod_path *m, const char *path,
                strxfrchar(m->name, '-', '_');
        }
 
-       if (alloc_ext && m->comp) {
-               m->ext = strdup(ext + 4);
-               if (!m->ext) {
-                       free((void *) m->name);
-                       return -ENOMEM;
-               }
-       }
-
        return 0;
 }
 
index a6c7af52115f397fbaf35d8a26db9ff6dc32205e..c5380500bed40b6afd03aa2721559bad8192b440 100644 (file)
@@ -262,17 +262,15 @@ int dso__decompress_kmodule_path(struct dso *dso, const char *name,
 
 struct kmod_path {
        char *name;
-       char *ext;
        int   comp;
        bool  kmod;
 };
 
 int __kmod_path__parse(struct kmod_path *m, const char *path,
-                    bool alloc_name, bool alloc_ext);
+                    bool alloc_name);
 
-#define kmod_path__parse(__m, __p)      __kmod_path__parse(__m, __p, false, false)
-#define kmod_path__parse_name(__m, __p) __kmod_path__parse(__m, __p, true , false)
-#define kmod_path__parse_ext(__m, __p)  __kmod_path__parse(__m, __p, false, true)
+#define kmod_path__parse(__m, __p)      __kmod_path__parse(__m, __p, false)
+#define kmod_path__parse_name(__m, __p) __kmod_path__parse(__m, __p, true)
 
 void dso__set_module_info(struct dso *dso, struct kmod_path *m,
                          struct machine *machine);