TEST_ASSERT_VAL("Core map - Die ID doesn't match",
                        session->header.env.cpu[map->map[i]].die_id == id.die);
                TEST_ASSERT_VAL("Core map - Node ID is set", id.node == -1);
-               TEST_ASSERT_VAL("Core map - ID is set", id.id == -1);
+               TEST_ASSERT_VAL("Core map - Thread is set", id.thread == -1);
        }
 
        // Test that die ID contains socket and die
                        session->header.env.cpu[map->map[i]].die_id == id.die);
 
                TEST_ASSERT_VAL("Die map - Node ID is set", id.node == -1);
-               TEST_ASSERT_VAL("Die map - ID is set", id.id == -1);
                TEST_ASSERT_VAL("Die map - Core is set", id.core == -1);
+               TEST_ASSERT_VAL("Die map - Thread is set", id.thread == -1);
        }
 
        // Test that socket ID contains only socket
 
                TEST_ASSERT_VAL("Socket map - Node ID is set", id.node == -1);
                TEST_ASSERT_VAL("Socket map - Die ID is set", id.die == -1);
-               TEST_ASSERT_VAL("Socket map - ID is set", id.id == -1);
                TEST_ASSERT_VAL("Socket map - Core is set", id.core == -1);
+               TEST_ASSERT_VAL("Socket map - Thread is set", id.thread == -1);
        }
 
        // Test that node ID contains only node
                id = cpu_map__get_node(map, i, NULL);
                TEST_ASSERT_VAL("Node map - Node ID doesn't match",
                        cpu__get_node(map->map[i]) == id.node);
-               TEST_ASSERT_VAL("Node map - ID is set", id.id == -1);
                TEST_ASSERT_VAL("Node map - Socket is set", id.socket == -1);
                TEST_ASSERT_VAL("Node map - Die ID is set", id.die == -1);
                TEST_ASSERT_VAL("Node map - Core is set", id.core == -1);
+               TEST_ASSERT_VAL("Node map - Thread is set", id.thread == -1);
        }
        perf_session__delete(session);
 
 
        struct aggr_cpu_id *a = (struct aggr_cpu_id *)a_pointer;
        struct aggr_cpu_id *b = (struct aggr_cpu_id *)b_pointer;
 
-       if (a->id != b->id)
-               return a->id - b->id;
-       else if (a->node != b->node)
+       if (a->node != b->node)
                return a->node - b->node;
        else if (a->socket != b->socket)
                return a->socket - b->socket;
        else if (a->die != b->die)
                return a->die - b->die;
-       else
+       else if (a->core != b->core)
                return a->core - b->core;
+       else
+               return a->thread - b->thread;
 }
 
 int cpu_map__build_map(struct perf_cpu_map *cpus, struct cpu_aggr_map **res,
 
 bool cpu_map__compare_aggr_cpu_id(struct aggr_cpu_id a, struct aggr_cpu_id b)
 {
-       return a.id == b.id &&
+       return a.thread == b.thread &&
                a.node == b.node &&
                a.socket == b.socket &&
                a.die == b.die &&
 
 bool cpu_map__aggr_cpu_id_is_empty(struct aggr_cpu_id a)
 {
-       return a.id == -1 &&
+       return a.thread == -1 &&
                a.node == -1 &&
                a.socket == -1 &&
                a.die == -1 &&
 struct aggr_cpu_id cpu_map__empty_aggr_cpu_id(void)
 {
        struct aggr_cpu_id ret = {
-               .id = -1,
+               .thread = -1,
                .node = -1,
                .socket = -1,
                .die = -1,
 
 #include <perf/cpumap.h>
 
 struct aggr_cpu_id {
-       int id;
+       int thread;
        int node;
        int socket;
        int die;
 
        case AGGR_THREAD:
                fprintf(config->output, "%*s-%*d%s",
                        config->csv_output ? 0 : 16,
-                       perf_thread_map__comm(evsel->core.threads, id.id),
+                       perf_thread_map__comm(evsel->core.threads, id.thread),
                        config->csv_output ? 0 : -8,
-                       perf_thread_map__pid(evsel->core.threads, id.id),
+                       perf_thread_map__pid(evsel->core.threads, id.thread),
                        config->csv_sep);
                break;
        case AGGR_GLOBAL:
 
                buf[i].counter = counter;
                buf[i].id = cpu_map__empty_aggr_cpu_id();
-               buf[i].id.id = thread;
+               buf[i].id.thread = thread;
                buf[i].uval = uval;
                buf[i].val = val;
                buf[i].run = run;
                if (config->stats)
                        printout(config, id, 0, buf[thread].counter, buf[thread].uval,
                                 prefix, buf[thread].run, buf[thread].ena, 1.0,
-                                &config->stats[id.id]);
+                                &config->stats[id.thread]);
                else
                        printout(config, id, 0, buf[thread].counter, buf[thread].uval,
                                 prefix, buf[thread].run, buf[thread].ena, 1.0,