Re: [kvm-unit-tests PATCH] s390x: Interception tests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 29.05.2017 12:17, David Hildenbrand wrote:
> On 29.05.2017 12:06, Thomas Huth wrote:
[...]
>>  s390x/Makefile    |  1 +
>>  s390x/intercept.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 100 insertions(+)
>>  create mode 100644 s390x/intercept.c
> 
> I think you should add that to s390x/unittests.cfg as well. (running all
> tests)

Ooops, right, forgot to add that :-/

>> diff --git a/s390x/intercept.c b/s390x/intercept.c
>> new file mode 100644
>> index 0000000..b0057e3
>> --- /dev/null
>> +++ b/s390x/intercept.c
>> @@ -0,0 +1,99 @@
>> +/*
>> + * Interception tests - for s390x CPU instruction that cause a VM exit
>> + *
>> + * Copyright (c) 2017 Red Hat Inc
>> + *
>> + * Authors:
>> + *  Thomas Huth <thuth@xxxxxxxxxx>
>> + *
>> + * This code is free software; you can redistribute it and/or modify it
>> + * under the terms of the GNU Library General Public License version 2.
>> + */
>> +#include <libcflat.h>
>> +#include <asm/page.h>
>> +
>> +static uint8_t pagebuf[PAGE_SIZE * 2] __attribute__((aligned(PAGE_SIZE)));
>> +
>> +/* Test the SET PREFIX and STORE PREFIX instructions */
>> +static void test_prefix(void)
>> +{
>> +	uint32_t old_prefix;
>> +	uint32_t new_prefix = (uint32_t)(intptr_t)pagebuf;
>> +
>> +	memset(pagebuf, 0, PAGE_SIZE * 2);
>> +
>> +	/*
>> +	 * Temporarily change the prefix page to our buffer, and store
>> +	 * some facility bits there ... at least some of them should be
>> +	 * set in our buffer afterwards.
>> +	 */
>> +	asm volatile (
>> +		" stpx	%0\n"
>> +		" spx	%1\n"
>> +		" stfl	0\n"
> 
> you could add another stpx to tmp_prefix here and test below if stpx
> actually return the correct value (e.g. not simply always 0).

Good idea, will do that!

>> +		" spx	%0\n"
>> +		: "=m"(old_prefix) : "m"(new_prefix) : "memory");
>> +	report("spx + stfl", pagebuf[200] != 0);
> 
> I have a patch that introduced the struct lowcore and generates
> asm-offsets, will post that soon.

OK, I just saw your "generate asm offsets for the lowcore" on the list
... will have a look at that...

 Thomas



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux