#
5dab5d3d |
| 28-Aug-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Add phase faults to ErrorLogging
Enhance the ErrorLogging class hierarchy to log phase fault errors. Support specifying additional error data that may have been collected from the device
regulators: Add phase faults to ErrorLogging
Enhance the ErrorLogging class hierarchy to log phase fault errors. Support specifying additional error data that may have been collected from the device.
Tested: * Logged an N phase fault error * Logged an N+1 phase fault error * Verified mock logPhaseFault() method could be used in a gtest.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I67efb7e16bb3fc5a071ccc60a949bba30daf3e78
show more ...
|
#
415094c1 |
| 15-Feb-2021 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Stop boot if cfg file not found/valid
Stop the boot during a BMC chassison/poweron if the regulators JSON configuration file cannot be found or is invalid.
During the boot, the regulato
regulators: Stop boot if cfg file not found/valid
Stop the boot during a BMC chassison/poweron if the regulators JSON configuration file cannot be found or is invalid.
During the boot, the regulators application configures the voltage regulators in the system. One of the most important voltage regulator settings that can be changed is the output voltage.
The rules on how to configure the voltage regulators are defined in the JSON config file. If this file cannot be found or is invalid, the voltage regulators cannot be configured.
That would mean that the voltage regulators would be turned on during the boot using their hardware default settings. It is common for some of the hardware defaults to be incorrect, occasionally by a significant amount.
If the hardware defaults are significantly off, it is possible that hardware damage could occur. For example, if the output voltage is too high, downstream hardware components could be damaged.
For this reason, the boot needs to be stopped. A critical error is logged, and the executable run by the systemd service file exits with a non-zero return code indicating failure.
Note that this behavior will only occur if the phosphor-regulators application is being used. The application must be explicitly enabled using a meson build option.
Tested: * Verified that boot is stopped if JSON config file not found/valid * Verified critical error logged * Verified regsctl exits with non-zero value causing config service to fail * Verified that boot continues if JSON config file valid * Tested with both 'obmcutil chassison' and 'obmcutil poweron' * For complete test plan see https://gist.github.com/smccarney/8801cad1fe1c4ae8913e57d9474bfaac
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I211f19cd9b98daea86645611633f8943c44b0f75
show more ...
|
#
a76898f1 |
| 13-Oct-2020 |
Bob King <Bob_King@wistron.com> |
regulators: Enhance config file parser
Enhance JSON config file parser to convert relative inventory paths to absolute form.
Tested: Run local CI with -Dlong-tests=enabled to enable tests for valid
regulators: Enhance config file parser
Enhance JSON config file parser to convert relative inventory paths to absolute form.
Tested: Run local CI with -Dlong-tests=enabled to enable tests for validate-regulators-config.py.
Signed-off-by: Bob King <Bob_King@wistron.com> Change-Id: I80237a673f9c5918898db15363847722141388e6
show more ...
|
#
76b7643f |
| 15-Oct-2020 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Store journal messages in error logs
The Journal::getMessages() method was recently implemented and merged. This method can be used to obtain the N most recent journal messages from a sp
regulators: Store journal messages in error logs
The Journal::getMessages() method was recently implemented and merged. This method can be used to obtain the N most recent journal messages from a specified application.
Modify the error logging code to use this new method. A method call was already in the code, but it was commented out until the new method became available.
The journal messages are stored in FFDC files that are eventually stored in the error log as additional debug data.
Tested: * Test where works * Verify returned messages are correct * Verify returned messages are stored in error log * Journal contains 0 messages for the specified application * Journal contains < 30 messages for the specified application * Journal contains > 30 messages for the specified application * Test where fails * Verify exception is written to journal * Verify keeps looping to obtain journal messages from other applications
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I2cc07e19daa61a614611305d60fd318c48826d96
show more ...
|
#
1df5954c |
| 24-Sep-2020 |
Shawn McCarney <shawnmm@us.ibm.com> |
regulators: Implement D-Bus error logging
Implemented the DBusErrorLogging class. This class creates error logs using the D-Bus CreateWithFFDCFiles method.
Updated the abstract base class, ErrorLo
regulators: Implement D-Bus error logging
Implemented the DBusErrorLogging class. This class creates error logs using the D-Bus CreateWithFFDCFiles method.
Updated the abstract base class, ErrorLogging, to have the correct virtual method parameters. The methods were previously defined with no parameters as a temporary measure.
Also updated the MockErrorLogging class to have the correct virtual method parameters.
Tested: * Verified that all the log*Error() methods create an error log of the correct type. * Verified that created error logs have the expected: * property/field values * callouts with associated VPD * User Data sections containing debug data stored in FFDC files * Tested where creating an FFDC file fails. * Tested where calling CreateWithFFDCFiles method fails. * Tested where removing an FFDC file fails. * Verified that if a failure occurs, it is written to the system journal but does not result in a second error log (since that could lead to an infinite loop). * Verified that temporary FFDC files are removed even if creating the error log fails.
Full Test Plan: * https://gist.github.com/smccarney/60ecbc018c55a5d13661bda8ee256d61
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com> Change-Id: I2837fc68dfbad2d89193a147222f1c51d9b1aad3
show more ...
|