Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove wants on synch targets in soft off #300

Merged
merged 1 commit into from
Jul 22, 2022

Conversation

geissonator
Copy link
Contributor

openbmc/phosphor-state-manager#21 highlights an architecture issue with
OpenBMC's use of synchronization targets. When a service, such as
pldmSoftPowerOff.service, runs both in a standard power off
target, as well as in other paths (like the host graceful quiesce
path), there is an issue.

The service starts the synchronization targets in the quiesce path and
this causes them to already be running on the power off, resulting in
the synchronization targets not actually coordinating the power off.

The direction this commit takes OpenBMC is that if a service needs to
run outside of the standard power on or off path, then they can not
have a Wants or Requires clause in the service file.

The following commit was done a while back to address this issue:
https://gerrit.openbmc.org/c/openbmc/phosphor-state-manager/+/40026

That is that we ensure the primary power on and off targets start the
synchronization targets so services requiring them can just use a
Before or After clause.

The piece that was never done was to go and fix the services which fell
into this bucket.

Tested:

  • Did multiple boots, reboots, and host crash tests and saw no issues

Signed-off-by: Andrew Geissler [email protected]
Change-Id: I7260f4aad666acf127f9766cf27dd54f4a18ebe4

openbmc/phosphor-state-manager#21 highlights an architecture issue with
OpenBMC's use of synchronization targets. When a service, such as
pldmSoftPowerOff.service, runs both in a standard power off
target, as well as in other paths (like the host graceful quiesce
path), there is an issue.

The service starts the synchronization targets in the quiesce path and
this causes them to already be running on the power off, resulting in
the synchronization targets not actually coordinating the power off.

The direction this commit takes OpenBMC is that if a service needs to
run outside of the standard power on or off path, then they can not
have a Wants or Requires clause in the service file.

The following commit was done a while back to address this issue:
  https://gerrit.openbmc.org/c/openbmc/phosphor-state-manager/+/40026

That is that we ensure the primary power on and off targets start the
synchronization targets so services requiring them can just use a
Before or After clause.

The piece that was never done was to go and fix the services which fell
into this bucket.

Tested:
- Did multiple boots, reboots, and host crash tests and saw no issues

Signed-off-by: Andrew Geissler <[email protected]>
Change-Id: I7260f4aad666acf127f9766cf27dd54f4a18ebe4
@geissonator
Copy link
Contributor Author

geissonator commented Jul 20, 2022

This is a part of the fix for SW552519 (fw1020.10)
Upstream commit is merged via https://gerrit.openbmc.org/c/openbmc/pldm/+/54225

@rfrandse rfrandse merged commit ed061e7 into ibm-openbmc:1020 Jul 22, 2022
rfrandse pushed a commit that referenced this pull request Jul 22, 2022
openbmc/phosphor-state-manager#21 highlights an architecture issue with
OpenBMC's use of synchronization targets. When a service, such as
pldmSoftPowerOff.service, runs both in a standard power off
target, as well as in other paths (like the host graceful quiesce
path), there is an issue.

The service starts the synchronization targets in the quiesce path and
this causes them to already be running on the power off, resulting in
the synchronization targets not actually coordinating the power off.

The direction this commit takes OpenBMC is that if a service needs to
run outside of the standard power on or off path, then they can not
have a Wants or Requires clause in the service file.

The following commit was done a while back to address this issue:
  https://gerrit.openbmc.org/c/openbmc/phosphor-state-manager/+/40026

That is that we ensure the primary power on and off targets start the
synchronization targets so services requiring them can just use a
Before or After clause.

The piece that was never done was to go and fix the services which fell
into this bucket.

Tested:
- Did multiple boots, reboots, and host crash tests and saw no issues

Signed-off-by: Andrew Geissler <[email protected]>
Change-Id: I7260f4aad666acf127f9766cf27dd54f4a18ebe4
rfrandse pushed a commit that referenced this pull request Sep 12, 2022
openbmc/phosphor-state-manager#21 highlights an architecture issue with
OpenBMC's use of synchronization targets. When a service, such as
pldmSoftPowerOff.service, runs both in a standard power off
target, as well as in other paths (like the host graceful quiesce
path), there is an issue.

The service starts the synchronization targets in the quiesce path and
this causes them to already be running on the power off, resulting in
the synchronization targets not actually coordinating the power off.

The direction this commit takes OpenBMC is that if a service needs to
run outside of the standard power on or off path, then they can not
have a Wants or Requires clause in the service file.

The following commit was done a while back to address this issue:
  https://gerrit.openbmc.org/c/openbmc/phosphor-state-manager/+/40026

That is that we ensure the primary power on and off targets start the
synchronization targets so services requiring them can just use a
Before or After clause.

The piece that was never done was to go and fix the services which fell
into this bucket.

Tested:
- Did multiple boots, reboots, and host crash tests and saw no issues

Signed-off-by: Andrew Geissler <[email protected]>
Change-Id: I7260f4aad666acf127f9766cf27dd54f4a18ebe4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants