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,

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