@@ -629,61 +629,59 @@ static u64 rapl_unit_xlate(struct rapl_domain *rd, enum unit_type type,
629629 return div64_u64 (value , scale );
630630}
631631
632- /* in the order of enum rapl_primitives */
633- static struct rapl_primitive_info rpi_default [] = {
632+ static struct rapl_primitive_info rpi_default [NR_RAPL_PRIMITIVES ] = {
634633 /* name, mask, shift, msr index, unit divisor */
635- PRIMITIVE_INFO_INIT (ENERGY_COUNTER , ENERGY_STATUS_MASK , 0 ,
634+ [ ENERGY_COUNTER ] = PRIMITIVE_INFO_INIT (ENERGY_COUNTER , ENERGY_STATUS_MASK , 0 ,
636635 RAPL_DOMAIN_REG_STATUS , ENERGY_UNIT , 0 ),
637- PRIMITIVE_INFO_INIT (POWER_LIMIT1 , POWER_LIMIT1_MASK , 0 ,
636+ [ POWER_LIMIT1 ] = PRIMITIVE_INFO_INIT (POWER_LIMIT1 , POWER_LIMIT1_MASK , 0 ,
638637 RAPL_DOMAIN_REG_LIMIT , POWER_UNIT , 0 ),
639- PRIMITIVE_INFO_INIT (POWER_LIMIT2 , POWER_LIMIT2_MASK , 32 ,
638+ [ POWER_LIMIT2 ] = PRIMITIVE_INFO_INIT (POWER_LIMIT2 , POWER_LIMIT2_MASK , 32 ,
640639 RAPL_DOMAIN_REG_LIMIT , POWER_UNIT , 0 ),
641- PRIMITIVE_INFO_INIT (POWER_LIMIT4 , POWER_LIMIT4_MASK , 0 ,
640+ [ POWER_LIMIT4 ] = PRIMITIVE_INFO_INIT (POWER_LIMIT4 , POWER_LIMIT4_MASK , 0 ,
642641 RAPL_DOMAIN_REG_PL4 , POWER_UNIT , 0 ),
643- PRIMITIVE_INFO_INIT (FW_LOCK , POWER_LOW_LOCK , 31 ,
642+ [ FW_LOCK ] = PRIMITIVE_INFO_INIT (FW_LOCK , POWER_LOW_LOCK , 31 ,
644643 RAPL_DOMAIN_REG_LIMIT , ARBITRARY_UNIT , 0 ),
645- PRIMITIVE_INFO_INIT (PL1_ENABLE , POWER_LIMIT1_ENABLE , 15 ,
644+ [ PL1_ENABLE ] = PRIMITIVE_INFO_INIT (PL1_ENABLE , POWER_LIMIT1_ENABLE , 15 ,
646645 RAPL_DOMAIN_REG_LIMIT , ARBITRARY_UNIT , 0 ),
647- PRIMITIVE_INFO_INIT (PL1_CLAMP , POWER_LIMIT1_CLAMP , 16 ,
646+ [ PL1_CLAMP ] = PRIMITIVE_INFO_INIT (PL1_CLAMP , POWER_LIMIT1_CLAMP , 16 ,
648647 RAPL_DOMAIN_REG_LIMIT , ARBITRARY_UNIT , 0 ),
649- PRIMITIVE_INFO_INIT (PL2_ENABLE , POWER_LIMIT2_ENABLE , 47 ,
648+ [ PL2_ENABLE ] = PRIMITIVE_INFO_INIT (PL2_ENABLE , POWER_LIMIT2_ENABLE , 47 ,
650649 RAPL_DOMAIN_REG_LIMIT , ARBITRARY_UNIT , 0 ),
651- PRIMITIVE_INFO_INIT (PL2_CLAMP , POWER_LIMIT2_CLAMP , 48 ,
650+ [ PL2_CLAMP ] = PRIMITIVE_INFO_INIT (PL2_CLAMP , POWER_LIMIT2_CLAMP , 48 ,
652651 RAPL_DOMAIN_REG_LIMIT , ARBITRARY_UNIT , 0 ),
653- PRIMITIVE_INFO_INIT (PL4_ENABLE , POWER_LIMIT4_MASK , 0 ,
652+ [ PL4_ENABLE ] = PRIMITIVE_INFO_INIT (PL4_ENABLE , POWER_LIMIT4_MASK , 0 ,
654653 RAPL_DOMAIN_REG_PL4 , ARBITRARY_UNIT , 0 ),
655- PRIMITIVE_INFO_INIT (TIME_WINDOW1 , TIME_WINDOW1_MASK , 17 ,
654+ [ TIME_WINDOW1 ] = PRIMITIVE_INFO_INIT (TIME_WINDOW1 , TIME_WINDOW1_MASK , 17 ,
656655 RAPL_DOMAIN_REG_LIMIT , TIME_UNIT , 0 ),
657- PRIMITIVE_INFO_INIT (TIME_WINDOW2 , TIME_WINDOW2_MASK , 49 ,
656+ [ TIME_WINDOW2 ] = PRIMITIVE_INFO_INIT (TIME_WINDOW2 , TIME_WINDOW2_MASK , 49 ,
658657 RAPL_DOMAIN_REG_LIMIT , TIME_UNIT , 0 ),
659- PRIMITIVE_INFO_INIT (THERMAL_SPEC_POWER , POWER_INFO_THERMAL_SPEC_MASK ,
658+ [ THERMAL_SPEC_POWER ] = PRIMITIVE_INFO_INIT (THERMAL_SPEC_POWER , POWER_INFO_THERMAL_SPEC_MASK ,
660659 0 , RAPL_DOMAIN_REG_INFO , POWER_UNIT , 0 ),
661- PRIMITIVE_INFO_INIT (MAX_POWER , POWER_INFO_MAX_MASK , 32 ,
660+ [ MAX_POWER ] = PRIMITIVE_INFO_INIT (MAX_POWER , POWER_INFO_MAX_MASK , 32 ,
662661 RAPL_DOMAIN_REG_INFO , POWER_UNIT , 0 ),
663- PRIMITIVE_INFO_INIT (MIN_POWER , POWER_INFO_MIN_MASK , 16 ,
662+ [ MIN_POWER ] = PRIMITIVE_INFO_INIT (MIN_POWER , POWER_INFO_MIN_MASK , 16 ,
664663 RAPL_DOMAIN_REG_INFO , POWER_UNIT , 0 ),
665- PRIMITIVE_INFO_INIT (MAX_TIME_WINDOW , POWER_INFO_MAX_TIME_WIN_MASK , 48 ,
664+ [ MAX_TIME_WINDOW ] = PRIMITIVE_INFO_INIT (MAX_TIME_WINDOW , POWER_INFO_MAX_TIME_WIN_MASK , 48 ,
666665 RAPL_DOMAIN_REG_INFO , TIME_UNIT , 0 ),
667- PRIMITIVE_INFO_INIT (THROTTLED_TIME , PERF_STATUS_THROTTLE_TIME_MASK , 0 ,
666+ [ THROTTLED_TIME ] = PRIMITIVE_INFO_INIT (THROTTLED_TIME , PERF_STATUS_THROTTLE_TIME_MASK , 0 ,
668667 RAPL_DOMAIN_REG_PERF , TIME_UNIT , 0 ),
669- PRIMITIVE_INFO_INIT (PRIORITY_LEVEL , PP_POLICY_MASK , 0 ,
668+ [ PRIORITY_LEVEL ] = PRIMITIVE_INFO_INIT (PRIORITY_LEVEL , PP_POLICY_MASK , 0 ,
670669 RAPL_DOMAIN_REG_POLICY , ARBITRARY_UNIT , 0 ),
671- PRIMITIVE_INFO_INIT (PSYS_POWER_LIMIT1 , PSYS_POWER_LIMIT1_MASK , 0 ,
670+ [ PSYS_POWER_LIMIT1 ] = PRIMITIVE_INFO_INIT (PSYS_POWER_LIMIT1 , PSYS_POWER_LIMIT1_MASK , 0 ,
672671 RAPL_DOMAIN_REG_LIMIT , POWER_UNIT , 0 ),
673- PRIMITIVE_INFO_INIT (PSYS_POWER_LIMIT2 , PSYS_POWER_LIMIT2_MASK , 32 ,
672+ [ PSYS_POWER_LIMIT2 ] = PRIMITIVE_INFO_INIT (PSYS_POWER_LIMIT2 , PSYS_POWER_LIMIT2_MASK , 32 ,
674673 RAPL_DOMAIN_REG_LIMIT , POWER_UNIT , 0 ),
675- PRIMITIVE_INFO_INIT (PSYS_PL1_ENABLE , PSYS_POWER_LIMIT1_ENABLE , 17 ,
674+ [ PSYS_PL1_ENABLE ] = PRIMITIVE_INFO_INIT (PSYS_PL1_ENABLE , PSYS_POWER_LIMIT1_ENABLE , 17 ,
676675 RAPL_DOMAIN_REG_LIMIT , ARBITRARY_UNIT , 0 ),
677- PRIMITIVE_INFO_INIT (PSYS_PL2_ENABLE , PSYS_POWER_LIMIT2_ENABLE , 49 ,
676+ [ PSYS_PL2_ENABLE ] = PRIMITIVE_INFO_INIT (PSYS_PL2_ENABLE , PSYS_POWER_LIMIT2_ENABLE , 49 ,
678677 RAPL_DOMAIN_REG_LIMIT , ARBITRARY_UNIT , 0 ),
679- PRIMITIVE_INFO_INIT (PSYS_TIME_WINDOW1 , PSYS_TIME_WINDOW1_MASK , 19 ,
678+ [ PSYS_TIME_WINDOW1 ] = PRIMITIVE_INFO_INIT (PSYS_TIME_WINDOW1 , PSYS_TIME_WINDOW1_MASK , 19 ,
680679 RAPL_DOMAIN_REG_LIMIT , TIME_UNIT , 0 ),
681- PRIMITIVE_INFO_INIT (PSYS_TIME_WINDOW2 , PSYS_TIME_WINDOW2_MASK , 51 ,
680+ [ PSYS_TIME_WINDOW2 ] = PRIMITIVE_INFO_INIT (PSYS_TIME_WINDOW2 , PSYS_TIME_WINDOW2_MASK , 51 ,
682681 RAPL_DOMAIN_REG_LIMIT , TIME_UNIT , 0 ),
683682 /* non-hardware */
684- PRIMITIVE_INFO_INIT (AVERAGE_POWER , 0 , 0 , 0 , POWER_UNIT ,
683+ [ AVERAGE_POWER ] = PRIMITIVE_INFO_INIT (AVERAGE_POWER , 0 , 0 , 0 , POWER_UNIT ,
685684 RAPL_PRIMITIVE_DERIVED ),
686- {NULL , 0 , 0 , 0 },
687685};
688686
689687static struct rapl_primitive_info * get_rpi (struct rapl_package * rp , int prim )
0 commit comments