History log of /openbmc/phosphor-power/phosphor-regulators/src/error_logging.cpp (Results 1 – 5 of 5)
Revision Date Author Comments
# 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 ...