History log of /openbmc/openpower-vpd-parser/vpd-manager/src/worker.cpp (Results 1 – 17 of 17)
Revision Date Author Comments
# 043955d2 21-Jan-2025 Sunny Srivastava <sunnsr25@in.ibm.com>

Handling of PELs while collecting system VPD

The commit updates handling of PEL in the path of system VPD collection.
Any error in the flow needs to be handled at worker end and should not
be propag

Handling of PELs while collecting system VPD

The commit updates handling of PEL in the path of system VPD collection.
Any error in the flow needs to be handled at worker end and should not
be propagated to Manager preventing service from failing.

Change-Id: Ia06e5a4debe2fd3f8541d7975509449e86b23fcc
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>

show more ...


# adff7880 13-Mar-2025 Sunny Srivastava <sunnsr25@in.ibm.com>

Check and update JSON symlink on every reboot

Symlink can exist whereas the underneath IM value can change in some
scenarios.
In such cases, even when the symlink is present, the file being pointed

Check and update JSON symlink on every reboot

Symlink can exist whereas the underneath IM value can change in some
scenarios.
In such cases, even when the symlink is present, the file being pointed
via symlink needs to be updated.

The commit, on every reboot, checks and updates the existing symlink if
required.

Change-Id: I850bfaba41c28ca30443aa09263c712e3a4e4af9
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>

show more ...


# 15a189a9 26-Feb-2025 Sunny Srivastava <sunnsr25@in.ibm.com>

API to get error type and error msg

Error type to be set should be strictly dependent on the type of
exception being caught. So that correct interface can be called from
message registry while loggi

API to get error type and error msg

Error type to be set should be strictly dependent on the type of
exception being caught. So that correct interface can be called from
message registry while logging a PEL.
Also, the error message logged should have a uniform format across
different kind of errors.

The commit implements API to get the pre-defined error type and message
format for a given exception.
The user needs to call this API and need not set error type on wish.

Change-Id: I3aeddd2986f12ff18b3a061533490db20ebede34
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>

show more ...


# a55fcca1 19-Feb-2025 Souvik Roy <souvikroyofficial10@gmail.com>

Refactor get keyword value API exception handling

This commit refactors vpd specific utility API used to read value of a
keyword,in order to handle any exceptions thrown by it locally. All
utility m

Refactor get keyword value API exception handling

This commit refactors vpd specific utility API used to read value of a
keyword,in order to handle any exceptions thrown by it locally. All
utility methods should handle exceptions locally and log a journal log
in case of failure. The caller of the utility APIs should check the
return value to detect success/failure.

This commit also changes the caller of this API throughout the repo, in
order to check the return value.

Test:

```
- Install bitbaked image on Everest system
- After BMC boots, BMC should reach Ready state
- Check vpd-manager service status, should be active(running)
- Check no restarts in vpd-manager service
- Check vpd-manager "CollectionStatus" = "Completed"
- Check extra interfaces are processed properly
- Check backup restore working properly
```

Change-Id: I965313f512553ed5d39373dd871754e1a8fed5f3
Signed-off-by: Souvik Roy <souvikroyofficial10@gmail.com>

show more ...


# c532b188 19-Feb-2025 RekhaAparna01 <vrekhaaparna@ibm.com>

Refactor exception handling for writeDbusProperty API

This commit refactors dbus_utility API used to update property value on
DBus to handle any exceptions thrown by it locally and return only
succe

Refactor exception handling for writeDbusProperty API

This commit refactors dbus_utility API used to update property value on
DBus to handle any exceptions thrown by it locally and return only
success or failure as the return type.

Also updated the caller of this API to handle the return value.

Change-Id: Ia92c1b0928d02cc0130a8b4e547ba3c6069d0d2f
Signed-off-by: RekhaAparna01 <vrekhaaparna@ibm.com>

show more ...


# 1ef21008 18-Feb-2025 RekhaAparna01 <vrekhaaparna@ibm.com>

Exception handling for json_utility APIs

This commit adds code to handle exceptions for some of the json_utility
APIs. Each API will have output returned in case of error based on the
return type of

Exception handling for json_utility APIs

This commit adds code to handle exceptions for some of the json_utility
APIs. Each API will have output returned in case of error based on the
return type of the API instead of throwing an exception.

Also updated the caller of the json_utility APIs to handle the return
value.

Change-Id: Ib43028974b61c18a0edae96608a8764cb440234a
Signed-off-by: RekhaAparna01 <vrekhaaparna@ibm.com>

show more ...


# 1aad7834 12-Dec-2024 Priyanga Ramasamy <priyanga24@in.ibm.com>

worker::CollectionStatus for each inventory FRU

This commit populates CollectionStatus D-bus property under
com.ibm.VPD.Collection D-bus interface for each inventory D-bus object
path which represen

worker::CollectionStatus for each inventory FRU

This commit populates CollectionStatus D-bus property under
com.ibm.VPD.Collection D-bus interface for each inventory D-bus object
path which represents a FRU.

The property tells the current status of VPD collection for a given
FRU's D-bus object path.

The property takes the below enum values:

>>>com.ibm.VPD.Collection.Status.Success
-------------------------------------
This value is assigned when VPD collection is successful.

>>>com.ibm.VPD.Collection.Status.Failure
-------------------------------------
VPD collection failure due to VPD exceptions.

>>>com.ibm.VPD.Collection.Status.InProgress
----------------------------------------
This value is assigned when VPD collection starts for the given FRU.

>>>com.ibm.VPD.Collection.Status.NotStarted
----------------------------------------
This default value is assigned when we hit prime inventory path.

Test:
1. VPD parsing failed for /sys/bus/i2c/drivers/at24/0-0051
/eeprom due to error: Unable to determine VPD format

=>CollectionStatus property value for tpm_wilson
s "com.ibm.VPD.Collection.Status.Failure"

2. FRU not found
s "com.ibm.VPD.Collection.Status.Failure"

3. Successful collection of VPD
s "com.ibm.VPD.Collection.Status.Success"

Change-Id: Ia5010a181f720454bb51538d6fcf308daf6b75ca
Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>

show more ...


# 6a9553c8 07-Feb-2025 Souvik Roy <souvikroyofficial10@gmail.com>

Fix Present property update in prime inventory

This commit adds changes in vpd-manager prime inventory flow to skip
updating Present property for FRUs for which vpd-manager doesn't
handle Present pr

Fix Present property update in prime inventory

This commit adds changes in vpd-manager prime inventory flow to skip
updating Present property for FRUs for which vpd-manager doesn't
handle Present property.

This commit also adds changes to skip updating Present property for a
FRU if vpd-manager is not supposed to handle Present property for the
FRU, in the scenario where VPD parsing fails for the FRU.

Test:
```
Tested on an Everest system.
- Reboot BMC with Chassis Off and fan3 plugged in.
After reboot, fan3 name and Present property appears properly on GUI.
- Reboot BMC with Chassis Off and fan3 plugged out.
After reboot, fan3 name and Present property appears properly on GUI.
Fan Health shows critical on GUI.
- Reboot BMC with Chassis On and fan3 plugged out.
After reboot, fan3 name and Present property appears properly on GUI.
fan3 Health shows critical on GUI.
- Reboot BMC with Chassis On and fan3 plugged in.
After reboot, fan3 name and Present property appears properly on GUI.
- Recreate genesis boot scenario and reboot BMC with fan3 plugged in.
After reboot, fan3 name and Present property appears properly on GUI.
- Recreate genesis boot scenario and reboot BMC with fan3 plugged out.
After reboot, fan3 name and Present property appears properly on GUI.
fan3 Health shows critical on GUI.
```

Change-Id: Ifa6a8909df059a7d3bddd34338d89f0fd8dd5098
Signed-off-by: Souvik Roy <souvikroyofficial10@gmail.com>

show more ...


# 43fedabc 03-Feb-2025 Patrick Williams <patrick@stwcx.xyz>

clang-format: update latest spec and reformat

Copy the latest format file from the docs repository and apply.

Change-Id: Id8301a67d945f8a3d1ceb87ae59087100338119c
Signed-off-by: Patrick Williams <p

clang-format: update latest spec and reformat

Copy the latest format file from the docs repository and apply.

Change-Id: Id8301a67d945f8a3d1ceb87ae59087100338119c
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# 1f4c8f81 23-Jan-2025 Souvik Roy <souvikroyofficial10@gmail.com>

Remove redundant async call in collection threads

This commit removes the redundant std:async call in the detached thread
launched for parsing and publishing the VPD for an individual FRU. Since
we

Remove redundant async call in collection threads

This commit removes the redundant std:async call in the detached thread
launched for parsing and publishing the VPD for an individual FRU. Since
we have a dedicated detached thread for each FRU, we can do VPD parse
and publish in a synchronous manner from the detached thread itself,
instead of launching a asynchronous task which adds unnecessary
performance cost. This commit also handles any exception thrown while
launching the detached thread for a FRU. In case launching detached
thread for a FRU fails, we add the EEPROM path of the FRU to a "failed
EEPROM" list. This list can be handled by Manager later on.

Test:
```
- Install bitbaked image on Everest system.

- Check vpd-manager service status:
root@p10bmc:~# systemctl show vpd-manager -p NRestarts
NRestarts=0

- Check BMC reaches ready state:
root@p10bmc:~# obmcutil state
CurrentBMCState : xyz.openbmc_project.State.BMC.BMCState.Ready
CurrentPowerState : xyz.openbmc_project.State.Chassis.PowerState.On
CurrentHostState : xyz.openbmc_project.State.Host.HostState.Running
BootProgress : xyz.openbmc_project.State.Boot.Progress.
ProgressStages.OSRunning
OperatingSystemState: xyz.openbmc_project.State.OperatingSystem.Status.
OSStatus.Inactive

-Check CollectionStatus property of vpd-manager D-Bus service:
root@p10bmc:~# busctl get-property com.ibm.VPD.Manager /com/ibm/VPD/
Manager com.ibm.VPD.Manager CollectionStatus
s "Completed"

- Check execution time change
Measure the time between vpd-manager event loop start and
CollectionStatus = Completed on a Everest system. Following figures were
measured across 3 reboots:
- On current code, (with the extra async call) it is 61 secs.
- With the changes in this PR, it is 60.33 secs.
```

Change-Id: I86dd9f9f6a4c67b8159e4c90d6ffdb005568cf6b
Signed-off-by: Souvik Roy <souvikroyofficial10@gmail.com>

show more ...


# 12b01393 05-Feb-2025 Sunny Srivastava <sunnsr25@in.ibm.com>

Add handling for json utility exception

While handling pass1 planar, handle exceltion in place.

This needs to be removed once utility methods are updated to not throw
exceptions.
Change-Id: I48c900

Add handling for json utility exception

While handling pass1 planar, handle exceltion in place.

This needs to be removed once utility methods are updated to not throw
exceptions.
Change-Id: I48c9000d6b6f7a0971e5ec21a897498c903a0a72
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>

show more ...


# 78c91073 05-Feb-2025 Sunny Srivastava <sunnsr25@in.ibm.com>

Skip presence detect and PEL for pass1 PCIe cards

Presence pin on pass1 planar does not reflect the true state of the
slot. It does not guarantee if the card is actually present in the slot
or not.

Skip presence detect and PEL for pass1 PCIe cards

Presence pin on pass1 planar does not reflect the true state of the
slot. It does not guarantee if the card is actually present in the slot
or not. Hence, the presence pin check is irrelevant in these scenarios
and is being skipped before enabling the line for VPD collection.

Availability of EEPROM after enabling the line should confirm if the
card needs to be collected or not.

Also, PCIe cards on pass1 is expected to have invalid VPD, avoiding
logging of PELs for those error scenarios.

Change-Id: Ia646b7d442a94fadea6b4c78d1d97c5a214579cb
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>

show more ...


# 765cf7b8 04-Feb-2025 Sunny Srivastava <sunnsr25@in.ibm.com>

Scale down threads for collection at power on

In case where BMC reboots and VPD-Manager re-triggers the collection
process for the FRUs, number of threads has been restricted to 2 for
now (Just a lo

Scale down threads for collection at power on

In case where BMC reboots and VPD-Manager re-triggers the collection
process for the FRUs, number of threads has been restricted to 2 for
now (Just a lower value).

The thread count is configurable and can be updated as required.

This is required to scale down CPU utilization at power on.

Change-Id: I7dee6dabf073bc1f17ab4f9f672aa183b00e116a
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>

show more ...


# 61611751 04-Feb-2025 Sunny Srivastava <sunnsr25@in.ibm.com>

Skip PCIe cards collection at power on

Collection of PCIe card is skipped in case of BMC reboot at chassis
power on.

Since PCIe cards are CMable and not hot pluggable, any removal or
addition of ca

Skip PCIe cards collection at power on

Collection of PCIe card is skipped in case of BMC reboot at chassis
power on.

Since PCIe cards are CMable and not hot pluggable, any removal or
addition of card will be handled in the CM flow. No need to explicit
collection when BMC is coming up while chassis is on.

Change-Id: Ib43c817e07593ea72a21b433b88cfc970344cded
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>

show more ...


# 4c164381 28-Jan-2025 Sunny Srivastava <sunnsr25@in.ibm.com>

Update JSON tag to follow camel case

JSON tag for post fail action has been modified to follow camel case.
Worker code has been modified accordingly.

Change-Id: I20960a2bdac13cca9f426d04e37247c5ebb

Update JSON tag to follow camel case

JSON tag for post fail action has been modified to follow camel case.
Worker code has been modified accordingly.

Change-Id: I20960a2bdac13cca9f426d04e37247c5ebb62ddb
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>

show more ...


# d159bb49 08-Jan-2025 Sunny Srivastava <sunnsr25@in.ibm.com>

API to set present property

The commit add an API into worker class to set present property
over DBus for a given FRU.

It also implements change to set present property as false in
case any failure

API to set present property

The commit add an API into worker class to set present property
over DBus for a given FRU.

It also implements change to set present property as false in
case any failure is detected in the process of collecting VPD for
the FRU.

Change-Id: I3faa988a0fb0886a6a28673439a46d6c22c16a32
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>

show more ...


# fa5e4d32 12-Mar-2023 Sunny Srivastava <sunnsr25@in.ibm.com>

Revamped code for VPD parser

The commit removes all the pre-existing code from the branch
and pushes the revamped code.

Major modification includes:
- Movement from multi exe to single daemon model

Revamped code for VPD parser

The commit removes all the pre-existing code from the branch
and pushes the revamped code.

Major modification includes:
- Movement from multi exe to single daemon model.
- Multithreaded approach to parse FRU VPD.
- Better error handling.
- Refactored code for performance optimization.

Note: This code supports all the existing functionalities as it is.

Change-Id: I1ddce1f0725ac59020b72709689a1013643bda8b
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>

show more ...