On 5/11/26 17:58, 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]/

Something like below seems to work.

C.


@@ -22,7 +22,6 @@ gen_features_h = custom_target('gen-feat
s390x_common_ss.add(gen_features_h)
 s390x_common_ss.add(files(
-  'cpu_models_user.c',
   'gdbstub.c',
 ))
@@ -38,8 +37,11 @@ s390x_common_system_ss.add(files(
   'mmu_helper.c',
   'sigp.c',
   'cpu-system.c',
+  'cpu_models_system.c',
 ))
+s390x_user_ss.add(files('cpu_models_user.c'))
+
 subdir('tcg')
 subdir('kvm')


Reply via email to