On Wed, 31 Jul 2024 16:37:19 +0200 Janosch Frank <frankja@xxxxxxxxxxxxx> wrote: > On 7/30/24 9:24 AM, Christoph Schlameuss wrote: > > Add test case running code interacting with registers within a > > ucontrol VM. > > > > * Add uc_gprs test case > > > > The test uses the same VM setup using the fixture and debug macros > > introduced in earlier patches in this series. > > > > Signed-off-by: Christoph Schlameuss <schlameuss@xxxxxxxxxxxxx> > > --- > > .../selftests/kvm/s390x/ucontrol_test.c | 126 ++++++++++++++++++ > > 1 file changed, 126 insertions(+) > > > > diff --git a/tools/testing/selftests/kvm/s390x/ucontrol_test.c b/tools/testing/selftests/kvm/s390x/ucontrol_test.c > > index 029233374465..817b1e08559c 100644 > > --- a/tools/testing/selftests/kvm/s390x/ucontrol_test.c > > +++ b/tools/testing/selftests/kvm/s390x/ucontrol_test.c > > @@ -41,6 +41,23 @@ void require_ucontrol_admin(void) > > TEST_REQUIRE(kvm_has_cap(KVM_CAP_S390_UCONTROL)); > > } > [...] > > +/* verify SIEIC exit > > + * * reset stop requests > > + * * fail on codes not expected in the test cases > > + */ > > +static bool uc_handle_sieic(FIXTURE_DATA(uc_kvm) * self) > > +{ > > + struct kvm_s390_sie_block *sie_block = self->sie_block; > > + struct kvm_run *run = self->run; > > + > > + /* check SIE interception code */ > > + pr_info("sieic: 0x%2x 0x%4x 0x%4x\n", > > I don't think there should be a space before the 4: > sieic: 0x 4 0x8300 0x440000 > > We can automatically add in the missing 0 > 0x%02x > At some point I considered that easier to read without the leading zeroes, but even that is not even true for me any more. I will change that to "sieic: 0x%.2x 0x%.4x 0x%.4x\n". > > + run->s390_sieic.icptcode, > > + run->s390_sieic.ipa, > > + run->s390_sieic.ipb); > > + switch (run->s390_sieic.icptcode) { > > + case ICPT_STOP: > > + /* stopped via sie V P --> ignore */ > > + /* reset stop request */ > > + sie_block->cpuflags = sie_block->cpuflags & ~CPUSTAT_STOP_INT; > > + pr_info("sie V P - cleared %.4x\n", sie_block->cpuflags); > > + break; > > With the added code that removes the P bit this shouldn't be called > anymore, no? > Yes, you are right this is no longer needed. And I will remove it. > > + case ICPT_INST: > > + /* end execution in caller on intercepted instruction */ > > + return false; > > + default: > > + TEST_FAIL("UNEXPECTED SIEIC CODE %d", run->s390_sieic.icptcode); > > + } > > + return true; > > +} >