Re: [kvm-unit-tests PATCH v2 4/4] s390x: STSI tests

Janosch Frank
2019-08-23T11:16:51Z

[-- Attachment #1.1: Type: text/plain, Size: 1868 bytes --]

On 8/23/19 12:57 PM, Thomas Huth wrote:
> On 8/21/19 12:47 PM, Janosch Frank wrote:
>> For now let's concentrate on the error conditions.
>>
>> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
>> ---
>> s390x/Makefile | 1 +
>> s390x/stsi.c | 84 +++++++++++++++++++++++++++++++++++++++++++++
>> s390x/unittests.cfg | 3 ++
>> 3 files changed, 88 insertions(+)
>> create mode 100644 s390x/stsi.c
>>
>> diff --git a/s390x/Makefile b/s390x/Makefile
>> index 3453373..76db0bb 100644
>> --- a/s390x/Makefile
>> +++ b/s390x/Makefile
>> @@ -13,6 +13,7 @@ tests += $(TEST_DIR)/gs.elf
>> tests += $(TEST_DIR)/iep.elf
>> tests += $(TEST_DIR)/cpumodel.elf
>> tests += $(TEST_DIR)/diag288.elf
>> +tests += $(TEST_DIR)/stsi.elf
>> tests_binary = $(patsubst %.elf,%.bin,$(tests))
>>
>> all: directories test_cases test_cases_binary
>> diff --git a/s390x/stsi.c b/s390x/stsi.c
>> new file mode 100644
>> index 0000000..0f90c9a
>> --- /dev/null
>> +++ b/s390x/stsi.c
>> @@ -0,0 +1,84 @@
> [...]
>> +static inline unsigned long stsi_get_fc(void *addr)
>> +{
>> + register unsigned long r0 asm("0") = 0;
>> + register unsigned long r1 asm("1") = 0;
>> + int cc;
>> +
>> + asm volatile("stsi 0(%2)\n"
>
> Shouldn't that be %3 instead?

Yup, although it doesn't really matter, as the address is ignored.

>
>> + "ipm %[cc]\n"
>> + "srl %[cc],28\n"
>> + : "+d" (r0), [cc] "=d" (cc)
>> + : "d" (r1), "a" (addr)
>> + : "cc", "memory");
>> + assert(!cc);
>> + return r0 >> 28;
>> +}
>> +
>> +static void test_fc(void)
>> +{
>> + report("cc == 3", stsi(pagebuf, 7, 0, 0) == 3);
>> + report("r0 == 3", stsi_get_fc(pagebuf) >= 2);

Just changed it to:
"invalid fc"
"query fc >= 2

>
> I'd like to suggest to change the string to "r0 >= 2", too.
>
> Thomas
>

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]