pseq: Create dump on runtime pgood failure
Currently no dump is created when a power good failure occurs at
runtime. Add the call to create a dump.
Signed-off-by: Jim Wright <jlwright@us.ibm.com>
Change-Id: I1effbf13f0b2fd234deea96171efa289f9fa2380
diff --git a/phosphor-power-sequencer/src/power_sequencer_monitor.cpp b/phosphor-power-sequencer/src/power_sequencer_monitor.cpp
index df723ab..04398eb 100644
--- a/phosphor-power-sequencer/src/power_sequencer_monitor.cpp
+++ b/phosphor-power-sequencer/src/power_sequencer_monitor.cpp
@@ -33,6 +33,25 @@
bus(bus)
{}
+void PowerSequencerMonitor::createBmcDump()
+{
+ try
+ {
+ auto method = bus.new_method_call(
+ "xyz.openbmc_project.Dump.Manager", "/xyz/openbmc_project/dump/bmc",
+ "xyz.openbmc_project.Dump.Create", "CreateDump");
+ method.append(
+ std::vector<
+ std::pair<std::string, std::variant<std::string, uint64_t>>>());
+ bus.call_noreply(method);
+ }
+ catch (const sdbusplus::exception::exception& e)
+ {
+ log<level::ERR>(
+ fmt::format("Unable to create dump, error {}", e.what()).c_str());
+ }
+}
+
void PowerSequencerMonitor::logError(
const std::string& message,
std::map<std::string, std::string>& additionalData)
@@ -83,6 +102,10 @@
// Default to generic pgood error
logError("xyz.openbmc_project.Power.Error.Shutdown", additionalData);
}
+ if (!timeout)
+ {
+ createBmcDump();
+ }
}
} // namespace phosphor::power::sequencer