[Skiboot] [PATCH 02/11] xive/p9: Clarify the global IRQ number encoding

Cédric Le Goater clg at kaod.org
Mon Jun 8 23:28:57 AEST 2020


On 6/8/20 5:31 AM, Gustavo Romero wrote:
> Hi Cédric,
> 
> On 6/4/20 10:21 AM, Cédric Le Goater wrote:
>> On P9, the global IRQ number is limited to 24 bits because the XICS
>> emulation encodes the CPPR value in the top 8 bits. The following
>> 4 bits are used to encode the XIVE block number, which leaves 20 bits
>> for the interrupt index number. Introduce a definition reflecting the
>> size of this bitfield and check that number of interrupts per chip is
>> not overflowing our encoding.
>>
>> Signed-off-by: Cédric Le Goater <clg at kaod.org>
>> ---
>>   hw/xive.c | 13 +++++++++----
>>   1 file changed, 9 insertions(+), 4 deletions(-)
>>
>> diff --git a/hw/xive.c b/hw/xive.c
>> index b9cdc4b0e317..3d016934a96d 100644
>> --- a/hw/xive.c
>> +++ b/hw/xive.c
>> @@ -498,11 +498,16 @@ static uint32_t xive_chip_to_block(uint32_t chip_id)
>>    * Global interrupt numbers for non-escalation interrupts are thus
>>    * limited to 24 bits which is necessary for our XICS emulation since
>>    * the top 8 bits are reserved for the CPPR value.
> 
> I think the commit message is more clear than the comment found in the
> source, so I'm wondering if it's good to replace the comment above with
> something like (taken from the commit message):
> 
>  Global interrupt numbers for non-escalation interrupts are thus
>  limited to 24 bits because the XICS emulation encodes the CPPR
>  value in the top (MSB) 8 bits. Hence, 4 bits are left to the
>  XIVE block number and the remaining 20 bits for the interrupt
>  index number.

Done for v2.

Thanks,

C. 

> Anyway, Reviewed-by: Gustavo Romero <gromero at linux.ibm.com>
> 
> 
> Best regards,
> Gustavo



More information about the Skiboot mailing list