On Wed, 23 Feb 2022 18:33:17 +0100 Nico Boehr <nrb@xxxxxxxxxxxxx> wrote: > On Wed, 2022-02-23 at 16:39 +0100, Janosch Frank wrote: > > On 2/23/22 14:29, Nico Boehr wrote: > > > > [...] > > > > > > +static void test_stsch(void) > > > +{ > > > > [...] > > > + report_prefix_push("Bit 47 in SID is zero"); > > > + expect_pgm_int(); > > > + stsch(0x0000ffff, &schib); > > > + check_pgm_int_code(PGM_INT_CODE_OPERAND); > > > + report_prefix_pop(); > > > > Add a comment: > > No matter if the multiple-subchannel-set facility is installed or > > not, > > bit 47 always needs to be 1. > > Will do. > > > Do we have the MSS facility? > > Not an IO expert, but it seems like it's enabled by QEMU in pc- > bios/s390-ccw/main.c, css_setup(). The comment suggests it's always > there. > AFAIR. The MSS facility is unconditionally implemented by QEMU thus it is always indicated as installed, but lies dormant per default and needs to be enabled. The idea is that a non-enlightened OS would not enable the facility, and thus effectively end up specifying zeros and using the subchannel-set 0, and would observe no changes whatsoever compared to running on a machine that does not have MSS facility installed. Whether MSS is installed in some configuration or not can be detected via the facility bit 47 of Store Channel-Subsystem Characteristics. > > If yes, could we disable it to test the 32-47 == 0x0001 case? > > I see ioinst_handle_chsc_sda() in QEMU to enable it. Disabling only > works with a full reset of the CSS (see css_reset()) which can be > triggered from a subsystem_reset(), which basically means we need to > IPL. I think that's not really viable or do you see any other way? > > Halil, Pierre, can you confirm? I don't think there is an other way, and there is usually no good reason to attempt that. If your OS enables it is enlightened, and it won't become non-enlightened. It is basically an opt-in. Eventually you may want to IPL something different, and you are covered by the subsystem reset. The best way to test this would be to not enable the facility. I have no idea if there is a way for a kvm-unit-test to accomplish that. Regards, Halil