On Mon, 2026-05-11 at 11:58 -0400, Eric Farman wrote:
> On Mon, 2026-05-11 at 17:48 +0200, Cédric Le Goater wrote:
> > Hello,
> > 
> > On 5/6/26 15:55, Philippe Mathieu-Daudé wrote:
> > > Introduce a source set common to system / user. Start it
> > > with the files built in both sets: 'cpu_models_user.c'
> > > and 'gdbstub.c' No logical change intended.
> > > 
> > > Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
> > > Reviewed-by: Ilya Leoshkevich <[email protected]>
> > > Message-Id: <[email protected]>
> > 
> > This change introduced a regression with PCI passthrough which
> > stopped working. Guest kernel reports :
> > 
> >    [    0.156501] zpci: PCI is not supported because CPU facilities 69 or 
> > 71 are not available
> > 
> > and other devices (ap, ccw) are impacted too I think.
> > 
> > > ---
> > >   target/s390x/meson.build | 25 +++++++++++++------------
> > >   1 file changed, 13 insertions(+), 12 deletions(-)
> > > 
> > > diff --git a/target/s390x/meson.build b/target/s390x/meson.build
> > > index 6f98ce34d73..44f58ac2919 100644
> > > --- a/target/s390x/meson.build
> > > +++ b/target/s390x/meson.build
> > > @@ -1,4 +1,9 @@
> > >   s390x_ss = ss.source_set()
> > > +s390x_common_ss = ss.source_set()
> > > +s390x_common_system_ss = ss.source_set()
> > > +s390x_system_ss = ss.source_set()
> > > +s390x_user_ss = ss.source_set()
> > > +
> > >   s390x_ss.add(files(
> > >     'cpu.c',
> > >     'cpu_features.c',
> > > @@ -15,15 +20,16 @@ gen_features_h = custom_target('gen-features.h',
> > >                                  capture: true,
> > >                                  command: gen_features)
> > >   
> > > -s390x_ss.add(gen_features_h)
> > > +s390x_common_ss.add(gen_features_h)
> > > +s390x_common_ss.add(files(
> > > +  'cpu_models_user.c',
> > > +  'gdbstub.c',
> > > +))
> > >   
> > > -s390x_system_ss = ss.source_set()
> > >   s390x_system_ss.add(files(
> > >     'ioinst.c',
> > >   ))
> > >   
> > > -s390x_common_system_ss = ss.source_set()
> > > -s390x_common_system_ss.add(gen_features_h)
> > >   s390x_common_system_ss.add(files(
> > >     'helper.c',
> > >     'arch_dump.c',
> > > @@ -32,19 +38,14 @@ s390x_common_system_ss.add(files(
> > >     'mmu_helper.c',
> > >     'sigp.c',
> > >     'cpu-system.c',
> > > -  'cpu_models_system.c',
> > 
> > This file is compiled anymore and the CPU features and facilities are
> > not propagated to the guest anymore.
> > 
> > Without this patch, cpuinfo reports :
> > 
> >    features : esan3 zarch stfle msa ldisp eimm dfp edat etf3eh highgprs te 
> > vx vxd vxe gs vxe2 vxp sort dflt vxp2 nnpa
> >    facilities      : 0 1 2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 
> > 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 47 48 49 
> > 50 51 52 53 54 57 58 59 60 61 64 65 69 71 72 73 74 75 76 77 78 80 81 82 129 
> > 130 131 133 134 135 138 139 140 146 147 148 150 151 152 155 156 165 192 193 
> > 194 196 197
> > 
> > with :
> > 
> >    features : esan3 zarch stfle msa ldisp eimm dfp edat etf3eh highgprs te 
> > vx vxd vxe gs vxe2 vxp sort dflt vxp2
> >    acilities      : 0 1 2 3 4 6 7 8 9 10 11 13 14 16 17 18 19 20 21 22 23 
> > 24 25 26 27 28 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 49 50 
> > 51 52 53 54 55 57 58 59 60 61 64 72 73 74 75 76 77 78 80 81 82 129 130 131 
> > 133 134 135 138 139 146 147 148 150 151 152 155 192
> > 
> 
> Thanks, Cedric... I wonder if the above is addressed by this patch? (I 
> haven't checked yet, but will
> do that now.)
> 
> https://lore.kernel.org/qemu-devel/[email protected]/

Nope, didn't help this particular problem. But patch sent for it.

> 
> Thanks,
> Eric
> 
> > 
> > Thanks,
> > 
> > C.
> > 
> > 
> > > -  'gdbstub.c',
> > > -))
> > > -
> > > -s390x_user_ss = ss.source_set()
> > > -s390x_user_ss.add(files(
> > > -  'cpu_models_user.c',
> > > -  'gdbstub.c',
> > >   ))
> > >   
> > >   subdir('tcg')
> > >   subdir('kvm')
> > >   
> > > +s390x_common_system_ss.add_all(s390x_common_ss)
> > > +s390x_user_ss.add_all(s390x_common_ss)
> > > +
> > >   target_arch += {'s390x': s390x_ss}
> > >   target_system_arch += {'s390x': s390x_system_ss}
> > >   target_common_system_arch += {'s390x': s390x_common_system_ss}

Reply via email to