Re: [kvm-unit-tests PATCH v5 01/10] s390x: saving regs for interrupts

Pierre Morel
2020-04-22T09:10:04Z

On 2020-04-22 09:47, Janosch Frank wrote:
> On 2/20/20 1:00 PM, Pierre Morel wrote:
>> If we use multiple source of interrupts, for example, using SCLP
>> console to print information while using I/O interrupts, we need
>> to have a re-entrant register saving interruption handling.
>>
>> Instead of saving at a static memory address, let's save the base
>> registers and the floating point registers on the stack.
>>
>> Note that we keep the static register saving to recover from the
>> RESET tests.
>>
>> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
>> ---
>> s390x/cstart64.S | 23 +++++++++++++++++++++--
>> 1 file changed, 21 insertions(+), 2 deletions(-)
>>
>> diff --git a/s390x/cstart64.S b/s390x/cstart64.S
>> index 9af6bb3..45da523 100644
>> --- a/s390x/cstart64.S
>> +++ b/s390x/cstart64.S
>> @@ -118,6 +118,25 @@ memsetxc:
>> lmg %r0, %r15, GEN_LC_SW_INT_GRS
>> .endm
>>
>> +/* Save registers on the stack, so we can have stacked interrupts. */
>> + .macro SAVE_IRQ_REGS
>> + slgfi %r15, 15 * 8
>> + stmg %r0, %r14, 0(%r15)
>
> So this is just making some space on the stack and storing r0 - r14, right?
>
> Same is done for the floating point registers below.
>
> Could you add a comment above slgfi and stmg and explain what they do?
> A few words are enough.
OK, thanks

Regards,
Pierre

--
Pierre Morel
IBM Lab Boeblingen