@@ -93,6 +93,7 @@ struct rapl_defaults {
9393 u64 (* compute_time_window )(struct rapl_package * rp , u64 val ,
9494 bool to_raw );
9595 unsigned int dram_domain_energy_unit ;
96+ unsigned int psys_domain_energy_unit ;
9697};
9798static struct rapl_defaults * rapl_defaults ;
9899
@@ -533,12 +534,23 @@ static void rapl_init_domains(struct rapl_package *rp)
533534 for (j = 0 ; j < RAPL_DOMAIN_REG_MAX ; j ++ )
534535 rd -> regs [j ] = rp -> priv -> regs [i ][j ];
535536
536- if (i == RAPL_DOMAIN_DRAM ) {
537+ switch (i ) {
538+ case RAPL_DOMAIN_DRAM :
537539 rd -> domain_energy_unit =
538540 rapl_defaults -> dram_domain_energy_unit ;
539541 if (rd -> domain_energy_unit )
540542 pr_info ("DRAM domain energy unit %dpj\n" ,
541543 rd -> domain_energy_unit );
544+ break ;
545+ case RAPL_DOMAIN_PLATFORM :
546+ rd -> domain_energy_unit =
547+ rapl_defaults -> psys_domain_energy_unit ;
548+ if (rd -> domain_energy_unit )
549+ pr_info ("Platform domain energy unit %dpj\n" ,
550+ rd -> domain_energy_unit );
551+ break ;
552+ default :
553+ break ;
542554 }
543555 rd ++ ;
544556 }
@@ -919,6 +931,14 @@ static const struct rapl_defaults rapl_defaults_hsw_server = {
919931 .dram_domain_energy_unit = 15300 ,
920932};
921933
934+ static const struct rapl_defaults rapl_defaults_spr_server = {
935+ .check_unit = rapl_check_unit_core ,
936+ .set_floor_freq = set_floor_freq_default ,
937+ .compute_time_window = rapl_compute_time_window_core ,
938+ .dram_domain_energy_unit = 15300 ,
939+ .psys_domain_energy_unit = 1000000000 ,
940+ };
941+
922942static const struct rapl_defaults rapl_defaults_byt = {
923943 .floor_freq_reg_addr = IOSF_CPU_POWER_BUDGET_CTL_BYT ,
924944 .check_unit = rapl_check_unit_atom ,
@@ -978,6 +998,7 @@ static const struct x86_cpu_id rapl_ids[] __initconst = {
978998 X86_MATCH_INTEL_FAM6_MODEL (COMETLAKE_L , & rapl_defaults_core ),
979999 X86_MATCH_INTEL_FAM6_MODEL (COMETLAKE , & rapl_defaults_core ),
9801000 X86_MATCH_INTEL_FAM6_MODEL (TIGERLAKE_L , & rapl_defaults_core ),
1001+ X86_MATCH_INTEL_FAM6_MODEL (SAPPHIRERAPIDS_X , & rapl_defaults_spr_server ),
9811002
9821003 X86_MATCH_INTEL_FAM6_MODEL (ATOM_SILVERMONT , & rapl_defaults_byt ),
9831004 X86_MATCH_INTEL_FAM6_MODEL (ATOM_AIRMONT , & rapl_defaults_cht ),
0 commit comments