@@ -16,7 +16,7 @@ struct process_cmd_struct {
16
16
int arg ;
17
17
};
18
18
19
- static const char * version_str = "v1.21 " ;
19
+ static const char * version_str = "v1.22 " ;
20
20
21
21
static const int supported_api_ver = 3 ;
22
22
static struct isst_if_platform_info isst_platform_info ;
@@ -46,8 +46,9 @@ static int force_online_offline;
46
46
static int auto_mode ;
47
47
static int fact_enable_fail ;
48
48
static int cgroupv2 ;
49
+ static int max_pkg_id ;
49
50
static int max_die_id ;
50
- static int max_punit_id ;
51
+ static int max_die_id_package_0 ;
51
52
52
53
/* clos related */
53
54
static int current_clos = -1 ;
@@ -557,18 +558,20 @@ void for_each_online_power_domain_in_set(void (*callback)(struct isst_id *, void
557
558
if (id .pkg < 0 || id .die < 0 || id .punit < 0 )
558
559
continue ;
559
560
561
+ id .die = id .die % (max_die_id_package_0 + 1 );
562
+
560
563
valid_mask [id .pkg ][id .die ] = 1 ;
561
564
562
565
if (cpus [id .pkg ][id .die ][id .punit ] == -1 )
563
566
cpus [id .pkg ][id .die ][id .punit ] = i ;
564
567
}
565
568
566
569
for (i = 0 ; i < MAX_PACKAGE_COUNT ; i ++ ) {
567
- if (max_die_id == max_punit_id ) {
570
+ if (max_die_id > max_pkg_id ) {
568
571
for (k = 0 ; k < MAX_PUNIT_PER_DIE && k < MAX_DIE_PER_PACKAGE ; k ++ ) {
569
572
id .cpu = cpus [i ][k ][k ];
570
573
id .pkg = i ;
571
- id .die = k ;
574
+ id .die = get_physical_die_id ( id . cpu ) ;
572
575
id .punit = k ;
573
576
if (isst_is_punit_valid (& id ))
574
577
callback (& id , arg1 , arg2 , arg3 , arg4 );
@@ -586,7 +589,10 @@ void for_each_online_power_domain_in_set(void (*callback)(struct isst_id *, void
586
589
for (k = 0 ; k < MAX_PUNIT_PER_DIE ; k ++ ) {
587
590
id .cpu = cpus [i ][j ][k ];
588
591
id .pkg = i ;
589
- id .die = j ;
592
+ if (id .cpu >= 0 )
593
+ id .die = get_physical_die_id (id .cpu );
594
+ else
595
+ id .die = id .pkg ;
590
596
id .punit = k ;
591
597
if (isst_is_punit_valid (& id ))
592
598
callback (& id , arg1 , arg2 , arg3 , arg4 );
@@ -788,6 +794,8 @@ static void create_cpu_map(void)
788
794
cpu_map [i ].die_id = die_id ;
789
795
cpu_map [i ].core_id = core_id ;
790
796
797
+ if (max_pkg_id < pkg_id )
798
+ max_pkg_id = pkg_id ;
791
799
792
800
punit_id = 0 ;
793
801
@@ -812,8 +820,8 @@ static void create_cpu_map(void)
812
820
if (max_die_id < die_id )
813
821
max_die_id = die_id ;
814
822
815
- if (max_punit_id < cpu_map [ i ]. punit_id )
816
- max_punit_id = cpu_map [ i ]. punit_id ;
823
+ if (! pkg_id && max_die_id_package_0 < die_id )
824
+ max_die_id_package_0 = die_id ;
817
825
818
826
debug_printf (
819
827
"map logical_cpu:%d core: %d die:%d pkg:%d punit:%d punit_cpu:%d punit_core:%d\n" ,
0 commit comments