[Skiboot] [PATCH] STOP API: API conditionally supports 255 SCOM restore entries for each quad.

Stewart Smith stewart at linux.vnet.ibm.com
Thu Jul 19 17:54:08 AEST 2018


Akshay Adiga <akshay.adiga at linux.vnet.ibm.com> writes:

> On Tue, Jul 17, 2018 at 04:15:52PM +1000, Stewart Smith wrote:
>> Akshay Adiga <akshay.adiga at linux.vnet.ibm.com> writes:
>> > From: Prem Shanker Jha <premjha2 at in.ibm.com>
>> >
>> > This is first of the series of commits intended for incorporating
>> > new mechanisms for SCOM restore. STOP API looks for a specific
>> > version in QPMR header of HOMER. If version is greater than 2, it allows
>> >  - 255 SCOM Restore entries per quad
>> >  - doesn't divide quad restore region in to L2, L3 and EQ sub-region
>> > If version is less than or equal to 2, API provideis legacy
>> > functionality.
>> > Key_Cronus_Test=PM_REGRESS
>> 
>> This patch appears to break things, we get these new OPAL errors:
>> 
>> [   81.249303719,3] IMC: IMC event_mask stopapi ret = 12, scoms = 20010aa8 (core id = 0)
>> [   81.249405452,3] IMC: SCOM entries are full
>> [  106.228080041,3] IMC: IMC event_mask stopapi ret = 12, scoms = 20010aa8 (core id = 0)
>> [  106.228183131,3] IMC: SCOM entries are full
>> 
>> Is this a bug with the STOP API changes or have we just been silently
>> dropping this and having bugs in IMC?
>
> We have not been failing silently, This patch made it fail.
>
> The patch expected a newer hostboot/firmware and was not able to handle
> current firmware level. The following patch fixes it. 
>
> diff --git a/libpore/p9_stop_api.C b/libpore/p9_stop_api.C
> index df1188c5..3b39b0cf 100644
> --- a/libpore/p9_stop_api.C
> +++ b/libpore/p9_stop_api.C
> @@ -836,6 +836,10 @@ StopReturnCode_t p9_stop_save_scom( void* const
> i_pImage,
>                  *(uint32_t*)((uint8_t*)i_pImage + CPMR_HOMER_OFFSET +
> CPMR_MAX_SCOM_REST_PER_CORE_BYTE);
>              pScomEntry              =   CORE_ID_SCOM_START(i_pImage,
> chipletId )
>                                          cacheEntry              =
> false;
> +               if( !l_maxScomRestoreEntry )
> +               {
> +                  l_maxScomRestoreEntry   = 15;
> +               }
>          }
>          else
>          {
>
> This hunk is provided by Prem specifically for OPAL so that we can merge
> these changes, the stop-api library will merge it a later point of
> time.

Okay, I'm okay with taking this with that extra hunk that defaults back
to what the original was (rather than assuming 0).

So, (with that hunk), merged to master as of 1a4aa1cb03498de236989ab8be797f0e84011fd8


-- 
Stewart Smith
OPAL Architect, IBM.



More information about the Skiboot mailing list