| 215121e4 | 24-Sep-2025 |
Manish Tiwari <tmanish.in+openbmc@gmail.com> |
PEL: FIX: Wait for obmc-recover-pnor before PHAL init
Problem: - It is observed intermittent core dumps from phosphor-log-manager during BMC graceful restart at OSRunning - Journals show an abort(
PEL: FIX: Wait for obmc-recover-pnor before PHAL init
Problem: - It is observed intermittent core dumps from phosphor-log-manager during BMC graceful restart at OSRunning - Journals show an abort() from dt_expand() in libpdbg immediately after openpower-update-bios-attr-table.service completes
Root cause: - phosphor-logging subscribed to JobRemoved for openpower-update- bios-attr-table.service and kicked off PHAL init on that signal to avoid loading the default devtree - In this window, obmc-recover-pnor.service which runs after the openpower-update-bios-attr-table.service may still accessing the devtree, so PHAL attempts to parse a devtree that isn’t ready, leading to libpdbg’s abort() in dt_expand() and a crash
Fix proposed: - Switch Jobremoved watch from openpower-update-bios-attr-table. service to obmc-recover-pnor.service
Tested:
Before fix, journal traces showed core dump in phosphor-logging:
``` systemd-coredump[916]: elfutils disabled, parsing ELF objects not supported systemd-coredump[916]: [] Process 400 (phosphor-log-ma) of user 0 dumped core. systemd[1]: xyz.openbmc_project.Logging.service: Main process exited, code=dumped, status=6/ABRT systemd[1]: xyz.openbmc_project.Logging.service: Failed with result 'core-dump' ```
After fix, no core dump observed in traces, service exits cleanly:
``` systemd[1]: Stopped Phosphor LED Group Management Daemon systemd[1]: xyz.openbmc_project.Logging.service: Deactivated successfully. systemd[1]: Stopped Phosphor Log Manager. systemd[1]: xyz.openbmc_project.Logging.service: Consumed 7.914s CPU time. ```
Change-Id: Ic907dcae2b20a81f485fe589703e8e84e5128608 Signed-off-by: Manish Tiwari <tmanish.in+openbmc@gmail.com>
show more ...
|
| 3dcf730d | 20-Aug-2025 |
Eddie James <eajames@linux.ibm.com> |
PEL: Update ECC error paths
The ECC error paths didn't match the code that creates these errors.
Change-Id: I9364eed0a2d24c29a75392cd091b1de6e1b372a5 Signed-off-by: Eddie James <eajames@linux.ibm.c
PEL: Update ECC error paths
The ECC error paths didn't match the code that creates these errors.
Change-Id: I9364eed0a2d24c29a75392cd091b1de6e1b372a5 Signed-off-by: Eddie James <eajames@linux.ibm.com>
show more ...
|
| 412ff862 | 01-Aug-2025 |
Adriana Kobylak <anoo@us.ibm.com> |
PEL: registry: Add message for integrity audit event
Add a new informational log message for when the kernel records an audit event of type Integrity. These events are related to the Integrity Measu
PEL: registry: Add message for integrity audit event
Add a new informational log message for when the kernel records an audit event of type Integrity. These events are related to the Integrity Measurement Architecture (IMA) functionality in the BMC, and would help the user to be aware of any activity related to IMA, such as attempts to execute unsigned binaries.
Change-Id: Idcc20cf46de6c5ecee85990fb21983afb14e7b48 Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
show more ...
|
| 5c4f0bae | 31-Jul-2025 |
Anupama B R <anupama.b.r1@ibm.com> |
PEL: Add journal trace for VPD PELs
This commits adds JournalCapture in message_registry for VPD PELs to capture journals at the time of PEL.
Change-Id: Ibdd2c9b02d715c6f20644330e6a4545bdec1d90f Si
PEL: Add journal trace for VPD PELs
This commits adds JournalCapture in message_registry for VPD PELs to capture journals at the time of PEL.
Change-Id: Ibdd2c9b02d715c6f20644330e6a4545bdec1d90f Signed-off-by: Anupama B R <anupama.b.r1@ibm.com>
show more ...
|
| 085efbb1 | 18-Jul-2025 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Track PEL creation time for debug
Track how long it takes to create the PEL portion of an event by saving it as journal metadata. It's only viewable with journalctl options like '-o verbose'.
PEL: Track PEL creation time for debug
Track how long it takes to create the PEL portion of an event by saving it as journal metadata. It's only viewable with journalctl options like '-o verbose'. This can be used for debug and to help when trying to improve PEL creation performance.
Also move down the trace where this is logged until after the PEL D-Bus interfaces are updated.
Tested:
Can see the new field:
MESSAGE=Created PEL 0x50000048 (BMC ID 72) with SRC BD55400C ID=0x50000048 BMCID=72 PEL_CREATE_DURATION=181
Change-Id: I165901f49a229eacf66be76d79972240a41aa155 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| 6bc84bbd | 26-Jun-2025 |
Adriana Kobylak <anoo@us.ibm.com> |
PEL: registry: Add message for factory reset requested
Add a new informational log message for when a BMC factory reset is requested.
Change-Id: Id4d8ea96682f4e534a3c177daf2c3fda67ec5898 Signed-off
PEL: registry: Add message for factory reset requested
Add a new informational log message for when a BMC factory reset is requested.
Change-Id: Id4d8ea96682f4e534a3c177daf2c3fda67ec5898 Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
show more ...
|
| 7bb45f42 | 30-Jun-2025 |
Adriana Kobylak <anoo@us.ibm.com> |
PEL: README: Fix linting
Change-Id: Id9656444a88b3b8a5339ecb9562ba4314ed45f73 Signed-off-by: Adriana Kobylak <anoo@us.ibm.com> |
| 63bc1675 | 10-Jun-2025 |
Rekha Aparna <vrekhaaparna@ibm.com> |
PEL: Add VPD parsing error
VPD parsing can be failed for both data and ECC errors for different records for a single file. So new generic error is introduced for exception occurred during VPD parsin
PEL: Add VPD parsing error
VPD parsing can be failed for both data and ECC errors for different records for a single file. So new generic error is introduced for exception occurred during VPD parsing.
Change-Id: I4e3bd3814856313d084035c735f37e14e290cd2d Signed-off-by: Rekha Aparna <vrekhaaparna@ibm.com>
show more ...
|
| 9b016909 | 10-Jun-2025 |
Patrick Williams <patrick@stwcx.xyz> |
markdownlint: minor fixes
Make minor fixes suggested by markdownlint.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: If0da7a57283aafc4d387a15ded83384302af8e90 |
| bf27da63 | 09-May-2025 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Remove Section::validate() virtual func
There is no need for the validate() function that every PEL section uses to be virtual, because it is always called directly by the class it's defined in
PEL: Remove Section::validate() virtual func
There is no need for the validate() function that every PEL section uses to be virtual, because it is always called directly by the class it's defined in.
Also, cppcheck was complaining that constructors, where validate() is called, can't call virtual functions anyway.
Tested: Unit tests pass
Change-Id: I7190a5299baa85f7956963e21189da0f4c62b68a Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| 8a09b982 | 09-May-2025 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Removed unused includes
The clangd LSP indicates when includes aren't used directly.
Tested: Unit tests pass.
Change-Id: I8290fe59abd1cef4fada27aeb5adb2c45c289abb Signed-off-by: Matt Spinler
PEL: Removed unused includes
The clangd LSP indicates when includes aren't used directly.
Tested: Unit tests pass.
Change-Id: I8290fe59abd1cef4fada27aeb5adb2c45c289abb Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| 91f6d3a5 | 22-May-2025 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Check for Py_None from parser calls
Explicitly check if the UserData or SRC python plugin parsers return a python None object and just return immediately. In the UserData case this results in
PEL: Check for Py_None from parser calls
Explicitly check if the UserData or SRC python plugin parsers return a python None object and just return immediately. In the UserData case this results in a hex dump, and in the SRC case it just won't print the SRC description.
Otherwise, peltool will crash when it tries to extract a string from the result.
Tested: peltool no longer crashes.
Change-Id: I2cb87a6071ecc2cbeb9df055f13039ad31fc6384 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| e2eb14ae | 09-May-2025 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Rename Section::flattenedSize
cppcheck was complaining about how flattenedSize() was in both the base class Section and all of its derived classes even though it wasn't virtual.
Change-Id: I5c
PEL: Rename Section::flattenedSize
cppcheck was complaining about how flattenedSize() was in both the base class Section and all of its derived classes even though it wasn't virtual.
Change-Id: I5cce8c6534e696f30c2c6141a50665d11a13eff0 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| 362f469c | 09-May-2025 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add 'override' to derived destructors
cppcheck complains that it is overriding a virtual function in the base class but isn't marked with override.
Change-Id: I4e03f0524987427e3742672d27b86c71
PEL: Add 'override' to derived destructors
cppcheck complains that it is overriding a virtual function in the base class but isn't marked with override.
Change-Id: I4e03f0524987427e3742672d27b86c71943fab5b Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| d7654dcd | 09-May-2025 |
Matt Spinler <spinler@us.ibm.com> |
clang-tidy: Fixup string '+' statement
clang-tidy didn't like the string = char + char
Change-Id: I9d2fd6ee9679b395d729e3507f471d112949918d Signed-off-by: Matt Spinler <spinler@us.ibm.com> |
| cc06b7f1 | 09-May-2025 |
Matt Spinler <spinler@us.ibm.com> |
clang-tidy: Remove unused lambda argument
Change-Id: I250cec8e5c16fff59648df794334ba6ee27a553c Signed-off-by: Matt Spinler <spinler@us.ibm.com> |
| f904caf4 | 09-May-2025 |
Matt Spinler <spinler@us.ibm.com> |
clang-tidy: Remove unnecessary std::move calls
Change-Id: Ic5a26cfa7c2cb1f993ea4e8ccb30c4a093a75f42 Signed-off-by: Matt Spinler <spinler@us.ibm.com> |
| 6f07df3e | 09-May-2025 |
Matt Spinler <spinler@us.ibm.com> |
clang-tidy: Change NULL to nullptr
Change-Id: I3b33aca08785ceb90c15c5155c9bb13b04e95d4e Signed-off-by: Matt Spinler <spinler@us.ibm.com> |
| 59b08f18 | 09-May-2025 |
Matt Spinler <spinler@us.ibm.com> |
clang-tidy: Delete unused copy/move ctor/operator
Explicitly delete the copy assignment, move assignment, and move constructors on the classes where they are unused.
Change-Id: I73298debb4e3e894af5
clang-tidy: Delete unused copy/move ctor/operator
Explicitly delete the copy assignment, move assignment, and move constructors on the classes where they are unused.
Change-Id: I73298debb4e3e894af5a02006b87d26b70f4535d Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| f87b4bd1 | 09-May-2025 |
Matt Spinler <spinler@us.ibm.com> |
clang-tidy: Removed unused constants
Change-Id: Ia681be696065686ee0e1f969f9e4221c284c611c Signed-off-by: Matt Spinler <spinler@us.ibm.com> |
| 931cafee | 22-Apr-2025 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Fixes for State.Boot.Raw Value updates
The first entry in the std::tuple of the Value property, which is used to hold the 8 character SRC refcode, changed from a uint64_t to a std::vector<uint8
PEL: Fixes for State.Boot.Raw Value updates
The first entry in the std::tuple of the Value property, which is used to hold the 8 character SRC refcode, changed from a uint64_t to a std::vector<uint8_t>. Make the necessary updates.
Tested:
Create a PEL with a severity value of 0x51 = critical system termination. It has the refcode sent to this Value property:
``` $ busctl get-property xyz.openbmc_project.State.Boot.Raw \ /xyz/openbmc_project/state/boot/raw0 \ xyz.openbmc_project.State.Boot.Raw Value (ayay) 8 49 49 48 48 50 54 48 50 ^^ this is the correct 8 byte 11002602 refcode
and the rest is the 72 byte progress SRC: 72 2 9 0 9 0 0 0 188 0 0 0 85 46 45 0 16 0 0 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49 49 48 48 50 54 48 50 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 ```
And now create another PEL, and this progress SRC should be in the hex words: ``` "Reference Code": "BD8D3601", "Hex Word 2": "00000055", "Hex Word 3": "2E2D0010", "Hex Word 4": "11002602", <------------------- "Hex Word 5": "00000000", "Hex Word 6": "00000000", "Hex Word 7": "00000000", "Hex Word 8": "00000000", "Hex Word 9": "00000000", ```
Change-Id: I8050eaf3e372b724fa41dc358633d4b3d29fc782 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| a92feeb0 | 28-Mar-2025 |
Sunny Srivastava <sunnsr25@in.ibm.com> |
PEL: Add firmware error for VPD
The commit adds new error to call out procedure in case there is any std::runtime exception in the VPD Manager.
Change-Id: Id2a567fb7bc4cc2335e08b4695a5ff5e405c5aa2
PEL: Add firmware error for VPD
The commit adds new error to call out procedure in case there is any std::runtime exception in the VPD Manager.
Change-Id: Id2a567fb7bc4cc2335e08b4695a5ff5e405c5aa2 Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>
show more ...
|
| 40fde0de | 25-Mar-2025 |
Anupama B R <anupama.b.r1@ibm.com> |
Update new error message for single FAB feature
Two new error messages are added in the message registry for creating PEL in case invalid system configuration found and need PE’s intervention to upd
Update new error message for single FAB feature
Two new error messages are added in the message registry for creating PEL in case invalid system configuration found and need PE’s intervention to update IM value manually to support single FAB feature.
Change-Id: Ifbc4d9eea44877db07542efc351364d133394ad4 Signed-off-by: Anupama B R <anupama.b.r1@ibm.com>
show more ...
|
| 7b92372d | 19-Mar-2025 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Still create callout without full loc code
When PELs are created early during a power on reset, the service that expands location codes may not be online yet. Previously, callouts just wouldn'
PEL: Still create callout without full loc code
When PELs are created early during a power on reset, the service that expands location codes may not be online yet. Previously, callouts just wouldn't be created if a location code couldn't be expanded.
Fix that so that a callout is still created with the unexpanded location code, as that is still better than nothing. In those cases, the CC/PN/FN fields would also be empty since those are obtained by finding the FRU inventory path from the location code.
Also create a similar callout in the case where the call to get the inventory path from a location code fails.
This applies for callouts created via: - The PEL message registry - The device path lookup tables - JSON FFDC files
Tested: New unit tests that cover these paths pass.
On a system, after stopping vpd-manager.service, will get callouts like: ``` "Callout Section": { "Callout Count": "4", "Callouts": [{ "FRU Type": "Normal Hardware FRU", "Priority": "Mandatory, replace all with this type as a unit", "Location Code": "P0-C5", "Part Number": "", "CCIN": "", "Serial Number": "" }, { "FRU Type": "Normal Hardware FRU", "Priority": "Mandatory, replace all with this type as a unit", "Location Code": "E0", "Part Number": "", "CCIN": "", "Serial Number": "" }, { "FRU Type": "Normal Hardware FRU", "Priority": "Lowest priority replacement", "Location Code": "P0", "Part Number": "", "CCIN": "", "Serial Number": "" }, { "FRU Type": "Normal Hardware FRU", "Priority": "Lowest priority replacement", "Location Code": "P0-T4", "Part Number": "", "CCIN": "", "Serial Number": "" }] } ```
Change-Id: Ia7e94f9d4848f78ba0b00023438c4db4135fed75 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| 760b9817 | 18-Mar-2025 |
harsh-agarwal1 <harsh.agarwal@ibm.com> |
PEL: Enable deletion if PEL file is deleted
- This ensures that PEL objects are deleted if PEL files are deleted, irrespective of links to HWIsolation records.
Tested: Sample output: ```bash $ bu
PEL: Enable deletion if PEL file is deleted
- This ensures that PEL objects are deleted if PEL files are deleted, irrespective of links to HWIsolation records.
Tested: Sample output: ```bash $ busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/ logging/entry/3 xyz.openbmc_project.Object.Delete Delete Call failed: The service is temporarily unavailable.
$ peltool -D ``` PEL entry 3 was deleted in above example. Change-Id: I416fad1d9dc832393b1ba689d582c602e27c79c6 Signed-off-by: Harsh Agarwal <Harsh.Agarwal@ibm.com>
show more ...
|