<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 21 Mar 2023 at 20:38, Supreeth Venkatesh <<a href="mailto:supreeth.venkatesh@amd.com">supreeth.venkatesh@amd.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
On 3/21/23 05:40, Patrick Williams wrote:<br>
> On Tue, Mar 21, 2023 at 12:14:45AM -0500, Supreeth Venkatesh wrote:<br>
><br>
>> #### Alternatives Considered<br>
>><br>
>> In-band mechanisms using System Management Mode (SMM) exists.<br>
>><br>
>> However, out of band method to gather RAS data is processor specific.<br>
>><br>
> How does this compare with existing implementations in<br>
> phosphor-debug-collector.<br>
Thanks for your feedback. See below.<br>
> I believe there was some attempt to extend<br>
> P-D-C previously to handle Intel's crashdump behavior.<br>
Intel's crashdump interface uses com.intel.crashdump.<br>
We have implemented com.amd.crashdump based on that reference. However, <br>
can this be made generic?<br>
<br>
PoC below:<br>
<br>
busctl tree com.amd.crashdump<br>
<br>
└─/com<br>
   └─/com/amd<br>
     └─/com/amd/crashdump<br>
       ├─/com/amd/crashdump/0<br>
       ├─/com/amd/crashdump/1<br>
       ├─/com/amd/crashdump/2<br>
       ├─/com/amd/crashdump/3<br>
       ├─/com/amd/crashdump/4<br>
       ├─/com/amd/crashdump/5<br>
       ├─/com/amd/crashdump/6<br>
       ├─/com/amd/crashdump/7<br>
       ├─/com/amd/crashdump/8<br>
       └─/com/amd/crashdump/9<br>
<br>
> The repository<br>
> currently handles IBM's processors, I think, or maybe that is covered by<br>
> openpower-debug-collector.<br>
><br>
> In any case, I think you should look at the existing D-Bus interfaces<br>
> (and associated Redfish implementation) of these repositories and<br>
> determine if you can use those approaches (or document why now).<br>
I could not find an existing D-Bus interface for RAS in <br>
xyz/openbmc_project/.<br>
It would be helpful if you could point me to it.<br></blockquote><div><br></div><div>There is an interface for the dumps generated from the host, which can be used for these kinds of dumps</div><div><a href="https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Dump/Entry/System.interface.yaml">https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Dump/Entry/System.interface.yaml</a><br></div><div><br></div><div>The fault log also provides similar dumps</div><div><a href="https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Dump/Entry/FaultLog.interface.yaml">https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Dump/Entry/FaultLog.interface.yaml</a><br></div><div><br></div><div><br></div><div>The tree for the dump manager looks like this</div>`-/xyz<br>  `-/xyz/openbmc_project<br>    `-/xyz/openbmc_project/dump<br>      |-/xyz/openbmc_project/dump/bmc<br>      | `-/xyz/openbmc_project/dump/bmc/entry<br>      |   |-/xyz/openbmc_project/dump/bmc/entry/1<br>      |   |-/xyz/openbmc_project/dump/bmc/entry/2<br>      |   |-/xyz/openbmc_project/dump/bmc/entry/3<br>      |   `-/xyz/openbmc_project/dump/bmc/entry/4<br>      |-/xyz/openbmc_project/dump/faultlog<br>      |-/xyz/openbmc_project/dump/hardware<br>      |-/xyz/openbmc_project/dump/hostboot<br>      |-/xyz/openbmc_project/dump/internal<br>      | `-/xyz/openbmc_project/dump/internal/manager<br>      |-/xyz/openbmc_project/dump/resource<br>      |-/xyz/openbmc_project/dump/sbe<br><div>      `-/xyz/openbmc_project/dump/system </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
There are references to com.intel.crashdump in bmcweb code, but the <br>
interface itself does not exist in yaml/com/intel/<br>
we can add com.amd.crashdump as a start or even come up with a new <br>
generic Dbus interface.<br>
As far as Redfish implementation is concerned, we are following the <br>
specification.<br>
redfish/v1/Systems/system/LogServices/Crashdump schema is being used.<br>
<br>
{<br>
<br>
"@<a href="http://odata.id" rel="noreferrer" target="_blank">odata.id</a>": "/redfish/v1/Systems/system/LogServices/Crashdump/Entries",<br>
"@odata.type": "#LogEntryCollection.LogEntryCollection",<br>
"Description": "Collection of Crashdump Entries",<br>
"Members":<br>
  [<br>
{"@<a href="http://odata.id" rel="noreferrer" target="_blank">odata.id</a>": "/redfish/v1/Systems/system/LogServices/Crashdump/Entries/0",<br>
"@odata.type": "#LogEntry.v1_7_0.LogEntry",<br>
"AdditionalDataURI": <br>
"/redfish/v1/Systems/system/LogServices/Crashdump/Entries/0/ras-error0.cper",<br>
"Created": "1970-1-1T0:4:12Z",<br>
"DiagnosticDataType": "OEM",<br>
"EntryType": "Oem",<br>
"Id": "0",<br>
"Name": "CPU Crashdump",<br>
"OEMDiagnosticDataType": "APMLCrashdump"<br>
},<br>
{"@<a href="http://odata.id" rel="noreferrer" target="_blank">odata.id</a>": "/redfish/v1/Systems/system/LogServices/Crashdump/Entries/1",<br>
"@odata.type": "#LogEntry.v1_7_0.LogEntry",<br>
"AdditionalDataURI": <br>
"/redfish/v1/Systems/system/LogServices/Crashdump/Entries/1/ras-error1.cper",<br>
"Created": "1970-1-1T0:4:12Z",<br>
"DiagnosticDataType": "OEM",<br>
"EntryType": "Oem",<br>
"Id": "1",<br>
"Name": "CPU Crashdump",<br>
"OEMDiagnosticDataType": "APMLCrashdump"<br>
},<br>
],<br>
"Members@odata.count": 2,<br>
"Name": "Open BMC Crashdump Entries"}<br>
><br>
</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature">--------------<br>Dhruvaraj S</div></div>