cpu_set_t *core_cpumask, int *cpu_cnt)
 {
        int i, cnt = 0;
-       int die_id, pkg_id;
 
        *cpu_cnt = 0;
-       die_id = get_physical_die_id(id->cpu);
-       pkg_id = get_physical_package_id(id->cpu);
 
        for (i = 0; i < 64; ++i) {
                if (core_mask & BIT_ULL(i)) {
                                if (!CPU_ISSET_S(j, present_cpumask_size, present_cpumask))
                                        continue;
 
-                               if (cpu_map[j].pkg_id == pkg_id &&
-                                   cpu_map[j].die_id == die_id &&
+                               if (cpu_map[j].pkg_id == id->pkg &&
+                                   cpu_map[j].die_id == id->die &&
                                    cpu_map[j].punit_cpu_core == i) {
                                        CPU_SET_S(j, core_cpumask_size,
                                                  core_cpumask);
 
 static int clx_n_config(struct isst_id *id)
 {
-       int i, ret, pkg_id, die_id;
+       int i, ret;
        unsigned long cpu_bf;
        struct isst_pkg_ctdp_level_info *ctdp_level;
        struct isst_pbf_info *pbf_info;
        pbf_info->p1_high = 0;
        pbf_info->p1_low = ~0;
 
-       pkg_id = get_physical_package_id(id->cpu);
-       die_id = get_physical_die_id(id->cpu);
-
        for (i = 0; i < topo_max_cpus; i++) {
                if (!CPU_ISSET_S(i, present_cpumask_size, present_cpumask))
                        continue;
 
-               if (pkg_id != get_physical_package_id(i) ||
-                   die_id != get_physical_die_id(i))
+               if (id->pkg != get_physical_package_id(i) ||
+                   id->die != get_physical_die_id(i))
                        continue;
 
                CPU_SET_S(i, ctdp_level->core_cpumask_size,
                if (!CPU_ISSET_S(i, present_cpumask_size, present_cpumask))
                        continue;
 
-               if (pkg_id != get_physical_package_id(i) ||
-                   die_id != get_physical_die_id(i))
+               if (id->pkg != get_physical_package_id(i) ||
+                   id->die != get_physical_die_id(i))
                        continue;
 
                cpu_bf = parse_int_file(1,
                                    ret);
                if (force_online_offline) {
                        struct isst_pkg_ctdp_level_info ctdp_level;
-                       int pkg_id = get_physical_package_id(id->cpu);
-                       int die_id = get_physical_die_id(id->cpu);
 
                        /* Wait for updated base frequencies */
                        usleep(2000);
                        if (ctdp_level.cpu_count) {
                                int i, max_cpus = get_topo_max_cpus();
                                for (i = 0; i < max_cpus; ++i) {
-                                       if (pkg_id != get_physical_package_id(i) || die_id != get_physical_die_id(i))
+                                       if (id->pkg != get_physical_package_id(i) || id->die != get_physical_die_id(i))
                                                continue;
                                        if (CPU_ISSET_S(i, ctdp_level.core_cpumask_size, ctdp_level.core_cpumask)) {
                                                fprintf(stderr, "online cpu %d\n", i);
 {
        struct isst_pkg_ctdp_level_info *ctdp_level;
        struct isst_pbf_info *pbf_info;
-       int i, pkg_id, die_id, freq, freq_high, freq_low;
+       int i, freq, freq_high, freq_low;
        int ret;
 
        ret = clx_n_config(id);
        freq_high = pbf_info->p1_high * 100000;
        freq_low = pbf_info->p1_low * 100000;
 
-       pkg_id = get_physical_package_id(id->cpu);
-       die_id = get_physical_die_id(id->cpu);
        for (i = 0; i < get_topo_max_cpus(); ++i) {
-               if (pkg_id != get_physical_package_id(i) ||
-                   die_id != get_physical_die_id(i))
+               if (id->pkg != get_physical_package_id(i) ||
+                   id->die != get_physical_die_id(i))
                        continue;
 
                if (CPU_ISSET_S(i, pbf_info->core_cpumask_size,
 
 static void set_scaling_min_to_cpuinfo_max(struct isst_id *id)
 {
-       int i, pkg_id, die_id;
+       int i;
 
-       pkg_id = get_physical_package_id(id->cpu);
-       die_id = get_physical_die_id(id->cpu);
        for (i = 0; i < get_topo_max_cpus(); ++i) {
-               if (pkg_id != get_physical_package_id(i) ||
-                   die_id != get_physical_die_id(i))
+               if (id->pkg != get_physical_package_id(i) ||
+                   id->die != get_physical_die_id(i))
                        continue;
 
                adjust_scaling_max_from_base_freq(i);
 
 static void set_scaling_min_to_cpuinfo_min(struct isst_id *id)
 {
-       int i, pkg_id, die_id;
+       int i;
 
-       pkg_id = get_physical_package_id(id->cpu);
-       die_id = get_physical_die_id(id->cpu);
        for (i = 0; i < get_topo_max_cpus(); ++i) {
-               if (pkg_id != get_physical_package_id(i) ||
-                   die_id != get_physical_die_id(i))
+               if (id->pkg != get_physical_package_id(i) ||
+                   id->die != get_physical_die_id(i))
                        continue;
 
                adjust_scaling_max_from_base_freq(i);
 
 static void set_scaling_max_to_cpuinfo_max(struct isst_id *id)
 {
-       int i, pkg_id, die_id;
+       int i;
 
-       pkg_id = get_physical_package_id(id->cpu);
-       die_id = get_physical_die_id(id->cpu);
        for (i = 0; i < get_topo_max_cpus(); ++i) {
-               if (pkg_id != get_physical_package_id(i) ||
-                   die_id != get_physical_die_id(i))
+               if (id->pkg != get_physical_package_id(i) ||
+                   id->die != get_physical_die_id(i))
                        continue;
 
                set_cpufreq_scaling_min_max_from_cpuinfo(i, 1, 1);
                                     cpu_set_t *cpu_mask, int min_high,
                                     int min_low)
 {
-       int pkg_id, die_id, ret, i;
+       int ret, i;
 
        if (!CPU_COUNT_S(mask_size, cpu_mask))
                return -1;
        if (ret)
                return ret;
 
-       pkg_id = get_physical_package_id(id->cpu);
-       die_id = get_physical_die_id(id->cpu);
        for (i = 0; i < get_topo_max_cpus(); ++i) {
                int clos;
                struct isst_id tid;
 
-               if (pkg_id != get_physical_package_id(i) ||
-                   die_id != get_physical_die_id(i))
+               if (id->pkg != get_physical_package_id(i) ||
+                   id->die != get_physical_die_id(i))
                        continue;
 
                if (CPU_ISSET_S(i, mask_size, cpu_mask))
        struct isst_clos_config clos_config;
        int ret;
 
-       clos_config.pkg_id = get_physical_package_id(id->cpu);
-       clos_config.die_id = get_physical_die_id(id->cpu);
+       clos_config.pkg_id = id->pkg;
+       clos_config.die_id = id->die;
 
        clos_config.epp = clos_epp;
        clos_config.clos_prop_prio = clos_prop_prio;
 
 void process_level_change(struct isst_id *id)
 {
        struct isst_pkg_ctdp_level_info ctdp_level;
-       int pkg_id = get_physical_package_id(id->cpu);
-       int die_id = get_physical_die_id(id->cpu);
        struct isst_pkg_ctdp pkg_dev;
        time_t tm;
        int ret;
 
-       if (pkg_id >= MAX_PACKAGE_COUNT || die_id >= MAX_DIE_PER_PACKAGE) {
+       if (id->pkg >= MAX_PACKAGE_COUNT || id->die >= MAX_DIE_PER_PACKAGE) {
                debug_printf("Invalid package/die info for cpu:%d\n", id->cpu);
                return;
        }
 
        tm = time(NULL);
-       if (tm - per_package_levels_tm[pkg_id][die_id] < 2 )
+       if (tm - per_package_levels_tm[id->pkg][id->die] < 2)
                return;
 
-       per_package_levels_tm[pkg_id][die_id] = tm;
+       per_package_levels_tm[id->pkg][id->die] = tm;
 
        ret = isst_get_ctdp_levels(id, &pkg_dev);
        if (ret) {
        }
 
        debug_printf("Get Config level %d pkg:%d die:%d current_level:%d\n", id->cpu,
-                     pkg_id, die_id, pkg_dev.current_level);
+                     id->pkg, id->die, pkg_dev.current_level);
 
        if (pkg_dev.locked) {
                debug_printf("config TDP s locked \n");
                return;
        }
 
-       if (per_package_levels_info[pkg_id][die_id] == pkg_dev.current_level)
+       if (per_package_levels_info[id->pkg][id->die] == pkg_dev.current_level)
                return;
 
        debug_printf("**Config level change for cpu:%d pkg:%d die:%d from %d to %d\n",
-                     id->cpu, pkg_id, die_id, per_package_levels_info[pkg_id][die_id],
+                     id->cpu, id->pkg, id->die, per_package_levels_info[id->pkg][id->die],
                      pkg_dev.current_level);
 
-       per_package_levels_info[pkg_id][die_id] = pkg_dev.current_level;
+       per_package_levels_info[id->pkg][id->die] = pkg_dev.current_level;
 
        ctdp_level.core_cpumask_size =
                alloc_cpu_set(&ctdp_level.core_cpumask);
        if (ctdp_level.cpu_count) {
                int i, max_cpus = get_topo_max_cpus();
                for (i = 0; i < max_cpus; ++i) {
-                       if (pkg_id != get_physical_package_id(i) || die_id != get_physical_die_id(i))
+                       if (id->pkg != get_physical_package_id(i) || id->die != get_physical_die_id(i))
                                continue;
                        if (CPU_ISSET_S(i, ctdp_level.core_cpumask_size, ctdp_level.core_cpumask)) {
                                fprintf(stderr, "online cpu %d\n", i);
 
 
        if (out_format_is_json()) {
                snprintf(header, sizeof(header), "package-%d:die-%d:cpu-%d",
-                        get_physical_package_id(id->cpu), get_physical_die_id(id->cpu),
-                        id->cpu);
+                        id->pkg, id->die, id->cpu);
                format_and_print(outf, 1, header, NULL);
                return 1;
        }
-       snprintf(header, sizeof(header), "package-%d",
-                get_physical_package_id(id->cpu));
+       snprintf(header, sizeof(header), "package-%d", id->pkg);
        format_and_print(outf, 1, header, NULL);
-       snprintf(header, sizeof(header), "die-%d", get_physical_die_id(id->cpu));
+       snprintf(header, sizeof(header), "die-%d", id->die);
        format_and_print(outf, 2, header, NULL);
        snprintf(header, sizeof(header), "cpu-%d", id->cpu);
        format_and_print(outf, 3, header, NULL);
 
        if (out_format_is_json()) {
                snprintf(header, sizeof(header), "package-%d:die-%d:cpu-%d",
-                        get_physical_package_id(id->cpu), get_physical_die_id(id->cpu),
-                        id->cpu);
+                        id->pkg, id->die, id->cpu);
                format_and_print(outf, level++, header, NULL);
        } else {
-               snprintf(header, sizeof(header), "package-%d",
-                        get_physical_package_id(id->cpu));
+               snprintf(header, sizeof(header), "package-%d", id->pkg);
                format_and_print(outf, level++, header, NULL);
-               snprintf(header, sizeof(header), "die-%d",
-                        get_physical_die_id(id->cpu));
+               snprintf(header, sizeof(header), "die-%d", id->die);
                format_and_print(outf, level++, header, NULL);
                snprintf(header, sizeof(header), "cpu-%d", id->cpu);
                format_and_print(outf, level++, header, NULL);