Skip to content

Commit bc15ea5

Browse files
committed
hw-mgmgt: thermal: Fix module temp_crit.
Fix moduleX_temp_crit value. Was wrong sourse for moduleX_temp_crit Wrong: /sys/module/sx_core/asic0/moduleX/temperature/threshold_lo Correct: /sys/module/sx_core/asic0/moduleX/temperature/threshold_hi Bug: 4452224 Signed-off-by: Oleksandr Shamray <[email protected]>
1 parent d521c5e commit bc15ea5

File tree

1 file changed

+185
-18
lines changed

1 file changed

+185
-18
lines changed

usr/usr/bin/hw_management_sync.py

Lines changed: 185 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,169 @@
149149
{"fin": None,
150150
"fn": "redfish_get_sensor", "arg" : ["/redfish/v1/Chassis/MGX_BMC_0/Sensors/BMC_TEMP", "bmc", 1000], "poll": 30, "ts": 0}
151151
],
152-
"def": [],
152+
"HI171|HI172|HI144|HI147|HI148|HI174": [
153+
{"fin": "/var/run/hw-management/system/graseful_pwr_off", "fn": "run_power_button_event",
154+
"arg": [], "poll": 1, "ts": 0},
155+
{"fin": None, "fn": "asic_temp_populate", "poll": 3, "ts": 0,
156+
"arg" : { "asic": {"fin": "/sys/module/sx_core/asic0/"},
157+
"asic1": {"fin": "/sys/module/sx_core/asic0/"}
158+
}
159+
},
160+
{"fin": None, "fn": "module_temp_populate", "poll": 20, "ts": 0,
161+
"arg" : {"fin": "/sys/module/sx_core/asic0/module{}/", "fout_idx_offset": 1, "module_count": 66}
162+
}
163+
],
164+
"HI112|HI116|HI136": [
165+
{"fin": None, "fn": "asic_temp_populate", "poll": 3, "ts": 0,
166+
"arg" : { "asic": {"fin": "/sys/module/sx_core/asic0/"},
167+
"asic1": {"fin": "/sys/module/sx_core/asic0/"}
168+
}
169+
},
170+
{"fin": None, "fn": "module_temp_populate", "poll": 20, "ts": 0,
171+
"arg" : {"fin": "/sys/module/sx_core/asic0/module{}/", "fout_idx_offset": 1, "module_count": 32}
172+
}
173+
],
174+
"HI120": [
175+
{"fin": None, "fn": "asic_temp_populate", "poll": 3, "ts": 0,
176+
"arg" : { "asic": {"fin": "/sys/module/sx_core/asic0/"},
177+
"asic1": {"fin": "/sys/module/sx_core/asic0/"}
178+
}
179+
},
180+
{"fin": None, "fn": "module_temp_populate", "poll": 20, "ts": 0,
181+
"arg" : {"fin": "/sys/module/sx_core/asic0/module{}/", "fout_idx_offset": 1, "module_count": 60}
182+
}
183+
],
184+
"HI121": [
185+
{"fin": None, "fn": "asic_temp_populate", "poll": 3, "ts": 0,
186+
"arg" : { "asic": {"fin": "/sys/module/sx_core/asic0/"},
187+
"asic1": {"fin": "/sys/module/sx_core/asic0/"}
188+
}
189+
},
190+
{"fin": None, "fn": "module_temp_populate", "poll": 20, "ts": 0,
191+
"arg" : {"fin": "/sys/module/sx_core/asic0/module{}/", "fout_idx_offset": 1, "module_count": 54}
192+
}
193+
],
194+
"HI122|HI156": [
195+
{"fin": None, "fn": "asic_temp_populate", "poll": 3, "ts": 0,
196+
"arg" : { "asic": {"fin": "/sys/module/sx_core/asic0/"},
197+
"asic1": {"fin": "/sys/module/sx_core/asic0/"}
198+
}
199+
},
200+
{"fin": None, "fn": "module_temp_populate", "poll": 20, "ts": 0,
201+
"arg" : {"fin": "/sys/module/sx_core/asic0/module{}/", "fout_idx_offset": 1, "module_count": 32}
202+
}
203+
],
204+
"HI123|HI124": [
205+
{"fin": None, "fn": "asic_temp_populate", "poll": 3, "ts": 0,
206+
"arg" : { "asic": {"fin": "/sys/module/sx_core/asic0/"},
207+
"asic1": {"fin": "/sys/module/sx_core/asic0/"}
208+
}
209+
},
210+
{"fin": None, "fn": "module_temp_populate", "poll": 20, "ts": 0,
211+
"arg" : {"fin": "/sys/module/sx_core/asic0/module{}/", "fout_idx_offset": 1, "module_count": 64}
212+
}
213+
],
214+
"HI146": [
215+
{"fin": None, "fn": "asic_temp_populate", "poll": 3, "ts": 0,
216+
"arg" : { "asic": {"fin": "/sys/module/sx_core/asic0/"},
217+
"asic1": {"fin": "/sys/module/sx_core/asic0/"}
218+
}
219+
},
220+
{"fin": None, "fn": "module_temp_populate", "poll": 20, "ts": 0,
221+
"arg" : {"fin": "/sys/module/sx_core/asic0/module{}/", "fout_idx_offset": 1, "module_count": 32}
222+
}
223+
],
224+
"HI160": [
225+
{"fin": None, "fn": "asic_temp_populate", "poll": 3, "ts": 0,
226+
"arg" : { "asic": {"fin": "/sys/module/sx_core/asic0/"},
227+
"asic1": {"fin": "/sys/module/sx_core/asic0/"}
228+
}
229+
},
230+
{"fin": None, "fn": "module_temp_populate", "poll": 20, "ts": 0,
231+
"arg" : {"fin": "/sys/module/sx_core/asic0/module{}/", "fout_idx_offset": 1, "module_count": 28}
232+
}
233+
],
234+
"HI157": [
235+
{"fin": None, "fn": "asic_temp_populate", "poll": 3, "ts": 0,
236+
"arg" : { "asic": {"fin": "/sys/module/sx_core/asic0/"},
237+
"asic1": {"fin": "/sys/module/sx_core/asic0/"},
238+
"asic2": {"fin": "/sys/module/sx_core/asic1/"}
239+
}
240+
},
241+
{"fin": None, "fn": "module_temp_populate", "poll": 20, "ts": 0,
242+
"arg" : {"fin": "/sys/module/sx_core/asic0/module{}/", "fout_idx_offset": 1, "module_count": 37}
243+
}
244+
],
245+
"HI158": [
246+
{"fin": None, "fn": "asic_temp_populate", "poll": 3, "ts": 0,
247+
"arg" : { "asic": {"fin": "/sys/module/sx_core/asic0/"},
248+
"asic1": {"fin": "/sys/module/sx_core/asic0/"},
249+
"asic2": {"fin": "/sys/module/sx_core/asic1/"},
250+
"asic3": {"fin": "/sys/module/sx_core/asic2/"},
251+
"asic4": {"fin": "/sys/module/sx_core/asic3/"}
252+
}
253+
},
254+
{"fin": None, "fn": "module_temp_populate", "poll": 20, "ts": 0,
255+
"arg" : {"fin": "/sys/module/sx_core/asic0/module{}/", "fout_idx_offset": 1, "module_count": 73}
256+
}
257+
],
258+
"HI175": [
259+
{"fin": None, "fn": "asic_temp_populate", "poll": 3, "ts": 0,
260+
"arg" : { "asic": {"fin": "/sys/module/sx_core/asic0/"},
261+
"asic1": {"fin": "/sys/module/sx_core/asic0/"},
262+
"asic2": {"fin": "/sys/module/sx_core/asic1/"},
263+
"asic3": {"fin": "/sys/module/sx_core/asic2/"},
264+
"asic4": {"fin": "/sys/module/sx_core/asic3/"}
265+
}
266+
},
267+
{"fin": None, "fn": "module_temp_populate", "poll": 20, "ts": 0,
268+
"arg" : {"fin": "/sys/module/sx_core/asic0/module{}/", "fout_idx_offset": 1, "module_count": 91}
269+
}
270+
],
271+
"HI176": [
272+
{"fin": "/var/run/hw-management/system/graseful_pwr_off", "fn": "run_power_button_event",
273+
"arg": [], "poll": 1, "ts": 0},
274+
{"fin": None, "fn": "asic_temp_populate", "poll": 3, "ts": 0,
275+
"arg" : { "asic": {"fin": "/sys/module/sx_core/asic0/"},
276+
"asic1": {"fin": "/sys/module/sx_core/asic0/"},
277+
"asic2": {"fin": "/sys/module/sx_core/asic1/"}
278+
}
279+
},
280+
281+
{"fin": None,
282+
"fn": "redfish_get_sensor", "arg" : ["/redfish/v1/Chassis/MGX_BMC_0/Sensors/BMC_TEMP", "bmc", 1000], "poll": 30, "ts": 0}
283+
],
284+
"HI177": [
285+
{"fin": "/var/run/hw-management/system/graseful_pwr_off", "fn": "run_power_button_event",
286+
"arg": [], "poll": 1, "ts": 0},
287+
{"fin": None, "fn": "asic_temp_populate", "poll": 3, "ts": 0,
288+
"arg" : { "asic": {"fin": "/sys/module/sx_core/asic0/"},
289+
"asic1": {"fin": "/sys/module/sx_core/asic0/"},
290+
"asic2": {"fin": "/sys/module/sx_core/asic1/"},
291+
"asic3": {"fin": "/sys/module/sx_core/asic2/"}
292+
}
293+
},
294+
{"fin": None,
295+
"fn": "redfish_get_sensor", "arg" : ["/redfish/v1/Chassis/MGX_BMC_0/Sensors/BMC_TEMP", "bmc", 1000], "poll": 30, "ts": 0}
296+
],
297+
"HI178": [
298+
{"fin": None, "fn": "asic_temp_populate", "poll": 3, "ts": 0,
299+
"arg" : { "asic": {"fin": "/sys/module/sx_core/asic0/"},
300+
"asic1": {"fin": "/sys/module/sx_core/asic0/"},
301+
}
302+
},
303+
{"fin": None, "fn": "module_temp_populate", "poll": 20, "ts": 0,
304+
"arg" : {"fin": "/sys/module/sx_core/asic0/module{}/", "fout_idx_offset": 1, "module_count": 24}
305+
}
306+
],
307+
"def": [
308+
{"fin": "/var/run/hw-management/config/thermal_enforced_full_spped",
309+
"fn": "run_cmd",
310+
"arg": ["if [[ -f /var/run/hw-management/config/thermal_enforced_full_spped && "
311+
"$(</var/run/hw-management/config/thermal_enforced_full_spped) == \"1\" ]]; then "
312+
"/usr/bin/hw-management-user-dump; fi"],
313+
"poll": 5, "ts": 0},
314+
],
153315
"test": [
154316
{"fin": "/tmp/power_button_clr",
155317
"fn": "run_power_button_event",
@@ -169,10 +331,10 @@ class CONST(object):
169331
ASIC_TEMP_FAULT_DEF = 105000
170332
ASIC_TEMP_CRIT_DEF = 120000
171333
#
172-
MODULE_TEMP_MIN_DEF = 70000
173334
MODULE_TEMP_MAX_DEF = 75000
174335
MODULE_TEMP_FAULT_DEF = 105000
175336
MODULE_TEMP_CRIT_DEF = 120000
337+
MODULE_TEMP_EMERGENCY_OFFSET = 10000
176338

177339
REDFISH_OBJ = None
178340

@@ -473,6 +635,7 @@ def module_temp_populate(arg_list, _dummy):
473635
temperature_min = "0"
474636
temperature_max = "0"
475637
temperature_fault = "0"
638+
temperature_trip_crit = "0"
476639
temperature_crit = "0"
477640

478641
if module_present:
@@ -484,44 +647,48 @@ def module_temp_populate(arg_list, _dummy):
484647
continue
485648

486649
f_src_input = os.path.join(f_src_path, "temperature/input")
487-
f_src_min = os.path.join(f_src_path, "temperature/threshold_lo")
488-
f_src_max = os.path.join(f_src_path, "temperature/threshold_hi")
650+
f_src_crit = os.path.join(f_src_path, "temperature/threshold_hi")
651+
f_src_hcrit = os.path.join(f_src_path, "temperature/threshold_critical_hi")
489652

490653
try:
491654
with open(f_src_input, 'r') as f:
492655
val = f.read()
493656
temperature = sdk_temp2degree(int(val))
494657

495-
if os.path.isfile(f_src_min):
496-
with open(f_src_min, 'r') as f:
658+
if os.path.isfile(f_src_crit):
659+
with open(f_src_crit, 'r') as f:
497660
val = f.read()
498-
temperature_min = sdk_temp2degree(int(val))
661+
temperature_crit = sdk_temp2degree(int(val))
499662
else:
500-
temperature_min = CONST.MODULE_TEMP_MIN_DEF
663+
temperature_crit = CONST.MODULE_TEMP_MAX_DEF
501664

502-
if os.path.isfile(f_src_max):
503-
with open(f_src_max, 'r') as f:
665+
if temperature_crit != 0:
666+
temperature_emergency = temperature_crit + CONST.MODULE_TEMP_EMERGENCY_OFFSET
667+
668+
if os.path.isfile(f_src_hcrit):
669+
with open(f_src_hcrit, 'r') as f:
504670
val = f.read()
505-
temperature_max = sdk_temp2degree(int(val))
671+
temperature_trip_crit = sdk_temp2degree(int(val))
506672
else:
507-
temperature_max = CONST.MODULE_TEMP_MAX_DEF
508-
temperature_crit = CONST.MODULE_TEMP_CRIT_DEF
673+
temperature_trip_crit = CONST.MODULE_TEMP_CRIT_DEF
674+
509675
except:
510676
pass
511677

512678
# Write the temperature data to files
513679
file_paths = {
514680
"_temp_input": temperature,
515-
"_temp_crit": temperature_min,
516-
"_temp_emergency": temperature_max,
681+
"_temp_crit": temperature_crit,
682+
"_temp_emergency": temperature_emergency,
517683
"_temp_fault": temperature_fault,
518-
"_temp_trip_crit": temperature_crit
684+
"_temp_trip_crit": temperature_trip_crit
519685
}
520686

521687
for suffix, value in file_paths.items():
522688
f_name = "/var/run/hw-management/thermal/{}{}".format(module_name, suffix)
523-
with open(f_name, 'w', encoding="utf-8") as f:
524-
f.write("{}\n".format(value))
689+
if value is not None:
690+
with open(f_name, 'w', encoding="utf-8") as f:
691+
f.write("{}\n".format(value))
525692

526693
with open("/var/run/hw-management/config/module_counter", 'w+', encoding="utf-8") as f:
527694
f.write("{}\n".format(module_count))

0 commit comments

Comments
 (0)