[Skiboot] [PATCH v7 00/22] MPIPL support
hegdevasant at linux.vnet.ibm.com
Mon May 13 19:36:07 AEST 2019
On 05/09/2019 06:08 AM, Michael Neuling wrote:
> On Sat, 2019-04-13 at 14:45 +0530, Vasant Hegde wrote:
>> Memory Preserving Initial Program Load (MPIPL) is a Power feature where
>> the contents of memory are preserved while the system reboots after a
>> failure. This is accomplished by the firmware/OS publishing ranges of
>> memory to be preserved across boots.
>> In the OPAL context, OPAL and host Linux communicate the memory ranges
>> to be preserved via source descriptor tables in the HDAT. This data is
>> updated at runtime via the SBE. When OPAL or Linux crashes, SBE gets to
>> know of the event via a special interrupt which causes it to trigger
>> the MPIPL.
>> Hostboot then re-IPLs the machine taking care to copy over contents of
>> the source descriptor tables to a alternate memory locations and
>> publishes this information in the destination descriptor tables. The
>> success/failure of the copy is indicated by a results table.
> How much coping are we talking about here?
OPAL memory and part of kernel memory.
It will be copied to destination memory as specified by OPAL/kernel during
> Most of RAM? Where to?
Destination memory is RAM. During MPIPL hostboot will not clear (reinit)
content is safe.
>> Hostboot also does the requisite procedures to gather hardware register
>> states for all active threads at the time of the crash.
>> On an MPIPL boot, OPAL exports the results information to the host Linux
>> kernel, which then uses its existing logic (kdump/fadump) to write out a
>> core dump of OPAL and Linux kernel in a format that GDB and crash can
>> - OPAL hardcodes few entries in MDST, MDDT table so that we can
>> capture early opal crash
>> - OPAL passes relocated base address to SBE via 'MPIPL stash chip-op'
>> so that hostboot can use relocated address to get MDST, MDDT table.
>> - OPAL passes dump details to host via device tree (/ibm,dump node)
>> - OPAL provides new API to MPIPL registration/unregistration
>> - Enhance reboot2 API to support MPIPL
>> - Add SBE s0/s1 interrupt support to initiate MPIPL on BMC based
>> - This patchset has dependency on SBE and Hostboot changes. There are
>> few Hostboot/SBE patches still in review state.
> How do we determine if the hostboot we are running with supports this?
We have machine xml flag to say MPIPL is supported or not. It will come to OPAL
>> - We need Linux kernel changes to generate opal core.
>> Hari will post Linux side patches.
> Similarly here. How does Linux know skiboot/hostboot supports this? If
> skiboot/hostboot doesn't support this, it'll need to go for a kdump alternative?
Correct. If MPIPL is supported we export device tree node (/ibm,opal/dump).
Kernel will check for this node, and enables appropriate dump mechanism.
More information about the Skiboot