Re: [kvm-unit-tests GIT PULL 07/26] s390x: sie: ensure guests are aligned to 2GB

Thomas Huth
2023-11-23T13:03:26Z

On 23/11/2023 10.24, Nina Schoetterl-Glausch wrote:
> On Wed, 2023-11-22 at 12:06 +0100, Thomas Huth wrote:
>> On 10/11/2023 14.52, Nico Boehr wrote:
>>> Until now, kvm-unit-tests has aligned guests to 1 MB in the host virtual
>>> address space. Unfortunately, some s390x environments require guests to
>>> be 2GB aligned in the host virtual address space, preventing
>>> kvm-unit-tests which act as a hypervisor from running there.
>>>
>>> We can't easily put guests at address 0, since we want to be able to run
>>> with MSO/MSL without having to maintain separate page tables for the
>>> guest physical memory. 2GB is also not a good choice, since the
>>> alloc_pages allocator will place its metadata there when the host has
>>> more than 2GB of memory. In addition, we also want a bit of space after
>>> the end of the host physical memory to be able to catch accesses beyond
>>> the end of physical memory.
>>>
>>> The vmalloc allocator unfortunately allocates memory starting at the
>>> highest virtual address which is not suitable for guest memory either
>>> due to additional constraints of some environments.
>>>
>>> The physical page allocator in memalign_pages() is also not a optimal
>>> choice, since every test running SIE would then require at least 4GB+1MB
>>> of physical memory.
>>>
>>> This results in a few quite complex allocation requirements, hence add a
>>> new function sie_guest_alloc() which allocates memory for a guest and
>>> then establishes a properly aligned virtual space mapping.
>>>
>>> Rework snippet test and sie tests to use the new sie_guest_alloc()
>>> function.
>>>
>>> Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
>>> Link: https://lore.kernel.org/r/20231106170849.1184162-3-nrb@linux.ibm.com
>>> Signed-off-by: Nico Boehr <nrb@linux.ibm.com>
>>> ---
>>> lib/s390x/sie.h | 2 ++
>>> lib/s390x/snippet.h | 9 +++------
>>> lib/s390x/sie.c | 42 ++++++++++++++++++++++++++++++++++++++++++
>>> s390x/sie.c | 4 ++--
>>> 4 files changed, 49 insertions(+), 8 deletions(-)
>>
>> Hi Nico!
>>
>> a colleague of mine (Jan) told me today that the current SIE-related tests
>> of the kvm-unit-tests are failing when being run from a KVM guest (i.e. when
>> we're testing a double-nested scenario). I've bisected the problem and ended
>> up with this patch here.
>> Could you please check whether "./run_tests.sh sie mvpg-sie spec_ex-sie"
>> still works for you from within a KVM guest?
>
> If you're getting a validity intercept, this should be fixed by
> KVM: s390: vsie: fix wrong VIR 37 when MSO is used
> https://lore.kernel.org/kvm/20231102153549.53984-1-imbrenda@linux.ibm.com/

Yes, thanks, I can confirm that this fixes the issue indeed!

Thomas