On 8/19/24 6:03 PM, Christoph Schlameuss wrote:
On Fri Aug 16, 2024 at 4:29 PM CEST, Janosch Frank wrote:
On 8/15/24 5:45 PM, Christoph Schlameuss wrote:
Add a test case verifying basic running and interaction of ucontrol VMs. Fill the segment and page tables for allocated memory and map memory on first access.
- uc_map_unmap Store and load data to mapped and unmapped memory and use pic segment translation handling to map memory on access.
 Signed-off-by: Christoph Schlameuss schlameuss@linux.ibm.com
.../selftests/kvm/s390x/ucontrol_test.c | 120 +++++++++++++++++- 1 file changed, 119 insertions(+), 1 deletion(-)
+static void uc_handle_exit_ucontrol(FIXTURE_DATA(uc_kvm) * self) +{
- struct kvm_run *run = self->run;
 - TEST_ASSERT_EQ(KVM_EXIT_S390_UCONTROL, run->exit_reason);
 - switch (run->s390_ucontrol.pgm_code) {
 - case PGM_SEGMENT_TRANSLATION:
 pr_info("ucontrol pic segment translation 0x%llx\n",run->s390_ucontrol.trans_exc_code);/* map / make additional memory available */struct kvm_s390_ucas_mapping map2 = {.user_addr = (u64)gpa2hva(self, run->s390_ucontrol.trans_exc_code),.vcpu_addr = run->s390_ucontrol.trans_exc_code,.length = VM_MEM_EXT_SIZE,};pr_info("ucas map %p %p 0x%llx\n",(void *)map2.user_addr, (void *)map2.vcpu_addr, map2.length);TEST_ASSERT_EQ(0, ioctl(self->vcpu_fd, KVM_S390_UCAS_MAP, &map2));break;Why is this necessary if you fix up the mapping in the test?
This is also used within the uc_skey test to make sure the remap does work after the unmap.
Maybe I'm blind because I'm still recovering but where exactly?