| feeb1082 | 02-Jan-2026 |
Matt Spinler <spinler@us.ibm.com> |
PEL:clang-tidy: Removed unused constants
Fix clang-tidy errors like: ``` ../extensions/openpower-pels/tools/peltool.cpp:39:16: error: unused variable 'logging' [clang-diagnostic-unused-const-variabl
PEL:clang-tidy: Removed unused constants
Fix clang-tidy errors like: ``` ../extensions/openpower-pels/tools/peltool.cpp:39:16: error: unused variable 'logging' [clang-diagnostic-unused-const-variable] 39 | constexpr auto logging = "xyz.openbmc_project.Logging"; | ^~~~~~~ ```
Change-Id: I7b0db7fe0150937b1a5eb389ea68ef82574f3998 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| cbc33605 | 02-Jan-2026 |
Matt Spinler <spinler@us.ibm.com> |
PEL:clang-tidy: Fix unchecked opt in src.cpp
Fix clang-tidy errors like:
``` ../extensions/openpower-pels/src.cpp:647:29: error: unchecked access to optional value [bugprone-unchecked-optional-acce
PEL:clang-tidy: Fix unchecked opt in src.cpp
Fix clang-tidy errors like:
``` ../extensions/openpower-pels/src.cpp:647:29: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-erro rs] 647 | entry->fruIdentity()->getMaintProc().value()), | ^ ```
Change-Id: Ibfcf0245e93cd3179ec97bb8e5b5398790b0128c Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| 4b383f9b | 02-Jan-2026 |
Matt Spinler <spinler@us.ibm.com> |
PEL:clang-tidy: Fix modernize-use-nullptr
Fix clang-tidy errors:
``` ../extensions/openpower-pels/src.cpp:123:20: error: use nullptr [modernize-use-nullptr,-warnings-as-errors] 123 | if (pMod
PEL:clang-tidy: Fix modernize-use-nullptr
Fix clang-tidy errors:
``` ../extensions/openpower-pels/src.cpp:123:20: error: use nullptr [modernize-use-nullptr,-warnings-as-errors] 123 | if (pModule == NULL) | ^~~~ | nullptr ```
Change-Id: I3e3d766411b11b7b2b1a52f257c03f71ffb2f971 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| 5204c260 | 02-Jan-2026 |
Matt Spinler <spinler@us.ibm.com> |
PEL:clang-tidy: Fix unchecked opt in PLDM call
Fix clang-tidy error:
``` ../extensions/openpower-pels/pldm_interface.cpp:231:36: error: unchecked access to optional value [bugprone-unchecked-option
PEL:clang-tidy: Fix unchecked opt in PLDM call
Fix clang-tidy error:
``` ../extensions/openpower-pels/pldm_interface.cpp:231:36: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warni ngs-as-errors] 231 | auto rc = encode_new_file_req(*_instanceID, pelFileType, _pelID, _pelSize, ```
Change-Id: I158e21f6c36bf9592e017c5a48c14a7a746bbcc9 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| a726c756 | 30-Nov-2024 |
Jayanth Othayoth <ojayanth@gmail.com> |
clang-tidy: Initial commit
Added initial .clang-tidy configuration file with recommended C++ checks aligned with the OpenBMC-approved checklist. This setup enforces modern C++ best practices and hel
clang-tidy: Initial commit
Added initial .clang-tidy configuration file with recommended C++ checks aligned with the OpenBMC-approved checklist. This setup enforces modern C++ best practices and helps catch common issues early in development.
Change-Id: I7aae8909f0a6d14a1c30e312f7720d03c3e4d793 Signed-off-by: Jayanth Othayoth <ojayanth@gmail.com>
show more ...
|
| d642df45 | 24-Dec-2025 |
Jayanth Othayoth <ojayanth@gmail.com> |
clang-tidy: guard optional accesses in tests
Introduce explicit control flow before dereferencing std::optional in remote logging tests to satisfy bugprone-unchecked-optional-access. This ensures cl
clang-tidy: guard optional accesses in tests
Introduce explicit control flow before dereferencing std::optional in remote logging tests to satisfy bugprone-unchecked-optional-access. This ensures clang-tidy compliance and prevents false positives while keeping test logic clear and robust. No functional changes.
Fixed below errors ''' ../test/remote_logging_test_config.cpp:80:28: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 80 | EXPECT_EQ(std::get<0>(*ret), "abcd:ef01::01"); | ^ ../test/remote_logging_test_config.cpp:81:28: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 81 | EXPECT_EQ(std::get<1>(*ret), 50000); | ^ ../test/remote_logging_test_config.cpp:145:28: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 145 | EXPECT_EQ(std::get<2>(*ret), | ^ ../test/remote_logging_test_config.cpp:156:28: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 156 | EXPECT_EQ(std::get<2>(*ret), | ^ '''
Change-Id: I848fd54dbdc2e2d133c78ee9c729f29173e0bbe1 Signed-off-by: Jayanth Othayoth <ojayanth@gmail.com>
show more ...
|
| acdea22a | 03-Dec-2025 |
Riya Sabu <riya.sabu461@gmail.com> |
PEL: Added the new message registry for data-sync
These error messages are associated with data-sync.
- xyz.openbmc_project.RBMC_DataSync.Error.SyncFailure
This is for scenarios where the issued
PEL: Added the new message registry for data-sync
These error messages are associated with data-sync.
- xyz.openbmc_project.RBMC_DataSync.Error.SyncFailure
This is for scenarios where the issued sync fails, e.g: Permanent error encountered by an issued rsync, Failure after all retry attempts etc.
- xyz.openbmc_project.RBMC_DataSync.Error.SyncEventsFailure
This is for scenarios when an event associated with a path, e.g: Setting a watcher for path, fails.
- xyz.openbmc_project.RBMC_DataSync.Error.ParserFailure
This is when there is a failure during parsing the data sync JSON configurations.
The above errors are considered as predictive.
- xyz.openbmc_project.RBMC_DataSync.Error.NotifyFailure
This is used when any unexpected outcome occurs regarding the notify request/service provided by data-sync. Treated as a non-error log.
Tested Creation of error log and contents tested in simics.
Change-Id: I27deb1e70444a81b2cddb5bdb892d82b5af5ea69 Signed-off-by: Riya Sabu <riya.sabu461@gmail.com>
show more ...
|
| c36e64cd | 03-Dec-2025 |
Riya Sabu <riya.sabu461@gmail.com> |
PEL: Add BMC datasync component ID
The datasync is used to synchronize the filesystem between BMC. Adding the component to the list with ID "7000" to incorporate DataSync specific error messages in
PEL: Add BMC datasync component ID
The datasync is used to synchronize the filesystem between BMC. Adding the component to the list with ID "7000" to incorporate DataSync specific error messages in the registry.
Change-Id: If6a3227fbfae9712e0f0dd501ab589b36d0beaa9 Signed-off-by: Riya Sabu <riya.sabu461@gmail.com>
show more ...
|
| 4bec95da | 17-Nov-2025 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Misc pel_manager_test improvements
Simplify 2 things in pel_manager_test.cpp: 1. Add a 'Using Level' statement for the error log severity so the namespace doesn't have to be used in each ins
PEL: Misc pel_manager_test improvements
Simplify 2 things in pel_manager_test.cpp: 1. Add a 'Using Level' statement for the error log severity so the namespace doesn't have to be used in each instance. 2. Use std::bind_front so std::placeholders doesn't need to be used for the function args.
Change-Id: Id02a0d052f9c5e0979ad0199b01a82e2119c9b45 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| 49d3035d | 17-Nov-2025 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Fix typo in function name
Change-Id: I8d6907344151c803e91afdf8c6c3deb904ec315e Signed-off-by: Matt Spinler <spinler@us.ibm.com> |
| b05e07c8 | 04-Nov-2025 |
Patrick Williams <patrick@stwcx.xyz> |
use sdbusplus unpack syntax
Rather than defining a variable and then reading it from a message, sdbusplus also supports directly unpack-ing from the message. Use this syntax instead as it is more e
use sdbusplus unpack syntax
Rather than defining a variable and then reading it from a message, sdbusplus also supports directly unpack-ing from the message. Use this syntax instead as it is more efficient and succinct.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I2516cfa21eaf0fc51902f2b23d4a54241e9d4978
show more ...
|
| 34c0c258 | 04-Nov-2025 |
Patrick Williams <patrick@stwcx.xyz> |
remove is_method_error call
An `is_method_error` is not appropriate after an sdbus `call` since `call` will always throw an exception. Remove the pointless call and instead catch the exception.
Si
remove is_method_error call
An `is_method_error` is not appropriate after an sdbus `call` since `call` will always throw an exception. Remove the pointless call and instead catch the exception.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Iac59331eb31ef7b4c31f21ce4463c6bc7cf83e56
show more ...
|
| 9cdb955d | 28-Oct-2025 |
Matt Spinler <spinler@us.ibm.com> |
Remove unused headers
Remove some headers that are very obviously unused.
Change-Id: I2c55b84b8ba678caad622f3c115e67d923c72a4a Signed-off-by: Matt Spinler <spinler@us.ibm.com> |
| c7474999 | 28-Oct-2025 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Removed unused header
Change-Id: I9fdacd6a504595fc8a573ed623268f993823bb52 Signed-off-by: Matt Spinler <spinler@us.ibm.com> |
| 40fb5493 | 28-Oct-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
Copyright: Move to SPDX-License-Identifier
Original copyright holders have been preserved, this patch moves the copyright notice to the compact SPDX notation.
Change-Id: I197e79ed3f9b09e293e02bda82
Copyright: Move to SPDX-License-Identifier
Original copyright holders have been preserved, this patch moves the copyright notice to the compact SPDX notation.
Change-Id: I197e79ed3f9b09e293e02bda820fa4c52d9a88e8 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
| d438c096 | 24-Oct-2025 |
Matt Spinler <spinler@us.ibm.com> |
PEL:test: Fix deprecated warnings with new gmock
The new version of gmock was complaining that the use of Invoke() for a callable was deprecated, so remove it.
``` ../subprojects/googletest/googlem
PEL:test: Fix deprecated warnings with new gmock
The new version of gmock was complaining that the use of Invoke() for a callable was deprecated, so remove it.
``` ../subprojects/googletest/googlemock/include/gmock/gmock-actions.h:2059:41: note: declared here 2059 | typename std::decay<FunctionImpl>::type Invoke(FunctionImpl&& function_impl) { | ^~~~~~ ../test/openpower-pels/host_notifier_test.cpp:489:31: error: ‘typename std::decay<_Tp>::type testing::Invoke(FunctionImpl&&) [with FunctionImpl = HostNotifierTest_TestCannotStartCmd_Test::TestBody()::<lambda(uint32_t, uint32_t)>&; typename std::decay<_Tp>::type = HostNotifierTest_TestCannotStartCmd_Test::TestBody()::<lambda(uint32_t, uint32_t)>]’ is deprecated: Actions can now be implicitly constructed from callables. No need to create wrapper objects using Invoke(). [-Werror=deprecated-declarations] 489 | .WillRepeatedly(Invoke(sendSuccess)); ```
Change-Id: Id698baa8eefbe7e2b632bf8e5e750df69e088312 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| 9e1e27c0 | 24-Oct-2025 |
Matt Spinler <spinler@us.ibm.com> |
PEL:test: Workaround new compiler issue
For reasons I'm not sure of, the compiler is now failing on a vector.resize() complaining about an array out of bounds with the errors shown below.
Change th
PEL:test: Workaround new compiler issue
For reasons I'm not sure of, the compiler is now failing on a vector.resize() complaining about an array out of bounds with the errors shown below.
Change the testcase to just initially create the vector to be 71 bytes instead of 72 and then resizing to 71.
This appears to only fail with a gcc 15.2 installed locally for standalone builds, and not with the one in CI.
``` [120/184] Compiling C++ object test/openpower-pels/test-openpower-pels-src.p/src_test.cpp.o FAILED: test/openpower-pels/test-openpower-pels-src.p/src_test.cpp.o ... inlined from ‘virtual void SRCTest_TestGetProgressCode_Test::TestBody()’ at ../test/openpower-pels/src_test.cpp:1609:19:
/usr/include/c++/15/bits/stl_construct.h:133:7: error: array subscript 72 is outside array bounds of ‘unsigned char [72]’ [-Werror=array-bounds=] 133 | ::new(static_cast<void*>(__p)) _Tp(std::forward<_Args>(__args)...); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/x86_64-linux-gnu/c++/15/bits/c++allocator.h:33, from /usr/include/c++/15/bits/allocator.h:46, from /usr/include/c++/15/bits/alloc_traits.h:39, from /usr/include/c++/15/ext/alloc_traits.h:36, from /usr/include/c++/15/bits/hashtable_policy.h:39, from /usr/include/c++/15/bits/hashtable.h:37, from /usr/include/c++/15/bits/unordered_map.h:33, from /usr/include/c++/15/unordered_map:43, from /usr/include/c++/15/functional:65, from ../subprojects/nlohmann_json/single_include/nlohmann/json.hpp:23: In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = unsigned char]’, inlined from ‘constexpr _Tp* std::allocator< <template-parameter-1-1> >::allocate(std::size_t) [with _Tp = unsigned char]’ at /usr/include/c++/15/bits/allocator.h:203:40, inlined from ‘static constexpr _Tp* std::allocator_traits<std::allocator<_Up> >::allocate(allocator_type&, size_type) [with _Tp = unsigned char]’ at /usr/include/c++/15/bits/alloc_traits.h:614:28, inlined from ‘constexpr std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]’ at /usr/include/c++/15/bits/stl_vector.h:387:33, inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_range_initialize_n(_Iterator, _Sentinel, size_type) [with _Iterator = const unsigned char*; _Sentinel = const unsigned char*; _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]’ at /usr/include/c++/15/bits/stl_vector.h:1985:23, inlined from ‘constexpr std::vector<_Tp, _Alloc>::vector(std::initializer_list<_Tp>, const allocator_type&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]’ at /usr/include/c++/15/bits/stl_vector.h:712:23, inlined from ‘virtual void SRCTest_TestGetProgressCode_Test::TestBody()’ at ../test/openpower-pels/src_test.cpp:1608:62: /usr/include/c++/15/bits/new_allocator.h:151:73: note: at offset 72 into object of size 72 allocated by ‘operator new’ 151 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp))); | ^ ```
Change-Id: I5f6e4b2b1137138ad7954ce6ab709cf318b05a5b Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
| 897c8ec0 | 23-Oct-2025 |
James Athappilly <jamesatha@meta.com> |
Fix compile-time race conditions
When building this, some small percentage of builds would fail and it seemed like there was a race condition that was the culprit.
This creates a new static library
Fix compile-time race conditions
When building this, some small percentage of builds would fail and it seemed like there was a race condition that was the culprit.
This creates a new static library for log manager so multiple things don't rebuild it. Additionally, we explicitly depend on generated headers to ensure things that rely on it build after those files are created. I have run over 200 builds and there have been no errors.
Change-Id: I4a1fd7270d081a464d1f9ea2482d84e1331fb9a5 Signed-off-by: James Athappilly <jamesatha@gmail.com>
show more ...
|
| 9fd25af5 | 23-Sep-2025 |
Piotr Sulewski <piotrx.sulewski@intel.com> |
Add configurable log level for cerr output
When directly running an executable which utilizes lg2, all logs are shown by default. Currently, we can only disable them entirely without any filtering o
Add configurable log level for cerr output
When directly running an executable which utilizes lg2, all logs are shown by default. Currently, we can only disable them entirely without any filtering options.
This commit adds the LG2_LOG_LEVEL environment variable for log filtering. It allows runtime control of log verbosity by setting LG2_LOG_LEVEL to desired maximum log level (0-7). Messages above this level are filtered out. Defaults to 7 (all levels) if not set.
Tested: Logs are properly filtered when the env variable is set
Change-Id: Ibe44d9971550d3b74ef818a00f7d6b364eb0212c Signed-off-by: Piotr Sulewski <piotrx.sulewski@intel.com>
show more ...
|
| 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 ...
|
| 0ceb37da | 29-Jul-2025 |
Brad Bishop <bradbish@qti.qualcomm.com> |
meson: subproject as system dependency
When phosphor-logging is a subproject, use -isystem for phosphor-logging headers. This is a signal to, for example static analysis tools, that the phosphor-log
meson: subproject as system dependency
When phosphor-logging is a subproject, use -isystem for phosphor-logging headers. This is a signal to, for example static analysis tools, that the phosphor-logging headers are to be treated as if they were installed in the compilers default search path (e.g. /usr/include).
Change-Id: I428d507cbf303816b27eae63d1d90d3ff02c2e7d Signed-off-by: Brad Bishop <bradbish@qti.qualcomm.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 ...
|