{
        struct perf_pmu_alias *alias;
 
-       if (load && !pmu->sysfs_aliases_loaded)
-               pmu_aliases_parse(pmu);
+       if (load && !pmu->sysfs_aliases_loaded) {
+               bool has_sysfs_event;
+               char event_file_name[FILENAME_MAX + 8];
 
+               /*
+                * Test if alias/event 'name' exists in the PMU's sysfs/events
+                * directory. If not skip parsing the sysfs aliases. Sysfs event
+                * name must be all lower or all upper case.
+                */
+               scnprintf(event_file_name, sizeof(event_file_name), "events/%s", name);
+               for (size_t i = 7, n = 7 + strlen(name); i < n; i++)
+                       event_file_name[i] = tolower(event_file_name[i]);
+
+               has_sysfs_event = perf_pmu__file_exists(pmu, event_file_name);
+               if (!has_sysfs_event) {
+                       for (size_t i = 7, n = 7 + strlen(name); i < n; i++)
+                               event_file_name[i] = toupper(event_file_name[i]);
+
+                       has_sysfs_event = perf_pmu__file_exists(pmu, event_file_name);
+               }
+               if (has_sysfs_event)
+                       pmu_aliases_parse(pmu);
+
+       }
        list_for_each_entry(alias, &pmu->aliases, list) {
                if (!strcasecmp(alias->name, name))
                        return alias;
 {
        size_t nr;
 
-       if (!pmu->sysfs_aliases_loaded)
-               pmu_aliases_parse(pmu);
-
+       pmu_aliases_parse(pmu);
        nr = pmu->sysfs_aliases;
 
        if (pmu->cpu_aliases_added)
        struct strbuf sb;
 
        strbuf_init(&sb, /*hint=*/ 0);
+       pmu_aliases_parse(pmu);
        pmu_add_cpu_aliases(pmu);
        list_for_each_entry(event, &pmu->aliases, list) {
                size_t buf_used;
        if (!pmu)
                return NULL;
 
+       pmu_aliases_parse(pmu);
        pmu_add_cpu_aliases(pmu);
        list_for_each_entry(event, &pmu->aliases, list) {
                struct perf_event_attr attr = {.config = 0,};