Re: [kvm-unit-tests PATCH v3 3/3] s390x/spec_ex: Add test of EXECUTE with odd target address

Thomas Huth
2023-03-17T16:38:20Z

On 17/03/2023 16.36, Claudio Imbrenda wrote:
> On Fri, 17 Mar 2023 15:11:35 +0100
> Thomas Huth <thuth@redhat.com> wrote:
>
>> On 17/03/2023 15.09, Thomas Huth wrote:
>>> On 15/03/2023 16.54, Nina Schoetterl-Glausch wrote:
>>>> The EXECUTE instruction executes the instruction at the given target
>>>> address. This address must be halfword aligned, otherwise a
>>>> specification exception occurs.
>>>> Add a test for this.
>>>>
>>>> Signed-off-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com>
>>>> ---
>>>>   s390x/spec_ex.c | 25 +++++++++++++++++++++++++
>>>>   1 file changed, 25 insertions(+)
>>>>
>>>> diff --git a/s390x/spec_ex.c b/s390x/spec_ex.c
>>>> index 83b8c58e..5fa05dba 100644
>>>> --- a/s390x/spec_ex.c
>>>> +++ b/s390x/spec_ex.c
>>>> @@ -177,6 +177,30 @@ static int short_psw_bit_12_is_0(void)
>>>>       return 0;
>>>>   }
>>>> +static int odd_ex_target(void)
>>>> +{
>>>> +    uint64_t pre_target_addr;
>>>> +    int to = 0, from = 0x0dd;
>>>> +
>>>> +    asm volatile ( ".pushsection .text.ex_odd\n"
>>>> +        "    .balign    2\n"
>>>> +        "pre_odd_ex_target:\n"
>>>> +        "    . = . + 1\n"
>>>> +        "    lr    %[to],%[from]\n"
>>>> +        "    .popsection\n"
>>>> +
>>>> +        "    larl    %[pre_target_addr],pre_odd_ex_target\n"
>>>> +        "    ex    0,1(%[pre_target_addr])\n"
>>>> +        : [pre_target_addr] "=&a" (pre_target_addr),
>>>> +          [to] "+d" (to)
>>>> +        : [from] "d" (from)
>>>> +    );
>>>> +
>>>> +    assert((pre_target_addr + 1) & 1);
>>>> +    report(to != from, "did not perform ex with odd target");
>>>> +    return 0;
>>>> +}
>>>
>>> Can this be triggered with KVM, or is this just a test for TCG?
>>
>> With "triggered" I mean: Can this cause an interception in KVM?
>
> AFAIK no, but KVM and TCG are not the only things we might want to test.

Ok, fair, KVM unit tests are not for KVM only anymore since quite a while,
so if this is helpful elsewhere, I'm fine with this.

Acked-by: Thomas Huth <thuth@redhat.com>