5
5
import utils
6
6
7
7
8
- current_loads = utils .get_current_loads ()
9
8
max_load = utils .max_load ()
10
9
min_load = utils .min_load ()
11
10
avail_freqs = utils .get_core_freqeuncies ()
11
+ core_count = utils .get_core_count ()
12
12
13
13
def expected_set_frequencies ():
14
14
no_of_avail_freqs = len (avail_freqs )
15
15
block_size = (max_load - min_load )/ no_of_avail_freqs
16
16
set_freq = []
17
+ current_loads = utils .get_current_loads ()
17
18
for load in current_loads :
18
19
temp = min_load
19
20
for freq in avail_freqs :
@@ -24,9 +25,35 @@ def expected_set_frequencies():
24
25
25
26
return set_freq
26
27
28
+ def current_temperature (core ):
29
+ return utils .get_core_temparature ()[core ]
30
+
31
+ def reduce_level (freq ):
32
+ if freq == avail_freqs [0 ]:
33
+ return freq
34
+
35
+ no_of_avail_freqs = len (avail_freqs )
36
+ for i in range (0 ,no_of_avail_freqs ) :
37
+ if freq == avail_freqs [i ] :
38
+ return avail_freqs [i - 1 ]
39
+
40
+ #never comes here
41
+ return freq [no_of_avail_freqs / 2 ]
42
+
27
43
def set_frequencies (freqs ):
28
44
safe_temperature = utils .calculate_safe_temperature ()
29
-
45
+
46
+ while True :
47
+ freqs = expected_set_frequencies ()
48
+ for i in range (0 ,core_count ) :
49
+ freq = freqs [i ]
50
+ if current_temperature (i ) <= safe_temperature :
51
+ set_core_frequency (i ,freq )
52
+ else :
53
+ curr_freq = utils .get_current_frequency (i )
54
+ previous_level_freq = reduce_level (curr_freq )
55
+ set_core_frequency (i ,previous_level_freq )
56
+ time .sleep (2 )
30
57
31
58
if __name__ == "__main__" :
32
59
freqs = expected_set_frequencies ()
0 commit comments