Skip to content

Commit

Permalink
Have distinct variables for psys and pkg max_energy_range
Browse files Browse the repository at this point in the history
  • Loading branch information
gcorrall committed Feb 23, 2024
1 parent b2cffa8 commit 563a8c9
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 9 deletions.
4 changes: 2 additions & 2 deletions src/intel_rapl_sysfs.adb
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,11 @@ package body Intel_RAPL_sysfs is
begin
if (Package_Name = "psys") then
Open (F_Name, In_File, Folder_Name & "intel-rapl:1/max_energy_range_uj");
RAPL_Data.max_energy_range := Long_Float'Value (Get_Line (F_Name)) / 1000000.0;
RAPL_Data.psys_max_energy_range := Long_Float'Value (Get_Line (F_Name)) / 1000000.0;
Close (F_Name);
elsif (Package_Name = "pkg") then
Open (F_Name, In_File, Folder_Name & "intel-rapl:0/max_energy_range_uj");
RAPL_Data.max_energy_range := Long_Float'Value (Get_Line (F_Name)) / 1000000.0;
RAPL_Data.pkg_max_energy_range := Long_Float'Value (Get_Line (F_Name)) / 1000000.0;
Close (F_Name);
elsif (Package_Name = "dram") then
Open (F_Name, In_File, Folder_Name & "intel-rapl:0/intel-rapl:0:2/max_energy_range_uj");
Expand Down
3 changes: 2 additions & 1 deletion src/intel_rapl_sysfs.ads
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ package Intel_RAPL_sysfs is
dram_supported : Boolean := False; -- if system support dram 0

-- Data to store max energy ranges
max_energy_range : Long_Float := 0.0; -- max_energy_range_uj
pkg_max_energy_range : Long_Float := 0.0; -- pkg max_energy_range_uj
psys_max_energy_range : Long_Float := 0.0; -- psys max_energy_range_uj
dram_max_energy_range : Long_Float := 0.0; -- dram max_energy_range_uj
end record;

Expand Down
16 changes: 10 additions & 6 deletions src/powerjoular.adb
Original file line number Diff line number Diff line change
Expand Up @@ -268,18 +268,22 @@ begin
-- Calculate Intel RAPL energy consumption
RAPL_Energy := RAPL_After.total_energy - RAPL_Before.total_energy;

if RAPL_Before.Dram_supported then
if RAPL_Before.total_energy > RAPL_After.total_energy then
-- energy has wrapped
if RAPL_Before.psys_supported then
RAPL_Energy := RAPL_Energy + RAPL_Before.psys_max_energy_range;
elsif RAPL_Before.Pkg_Supported then
RAPL_Energy := RAPL_Energy + RAPL_Before.pkg_max_energy_range;
end if;
end if;

if RAPL_Before.Pkg_Supported and RAPL_Before.Dram_supported then
if RAPL_Before.dram > RAPL_After.dram then
-- dram has wrapped
RAPL_Energy := RAPL_Energy + RAPL_Before.dram_max_energy_range;
end if;
end if;

if RAPL_Before.total_energy > RAPL_After.total_energy then
-- energy has wrapped
RAPL_Energy := RAPL_Energy + RAPL_Before.max_energy_range;
end if;

CPU_Power := RAPL_Energy;
Total_Power := CPU_Power;
end if;
Expand Down

0 comments on commit 563a8c9

Please sign in to comment.