* Clarify s390x CPU topology docs and CPU compatibility error messages
* Improve the Sparc CPU help text * Rename SOFTMMU to SYSTEM in the travis.yml file -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmX4f/gRHHRodXRoQHJl ZGhhdC5jb20ACgkQLtnXdP5wLbULnBAAgAPw1tonqEyt0kEw+i088do3yprrcoA+ vTWB1Qk8ieL7nmBaFtsKYXVeoY+KICSGY4UvN3+jFot8uwzSz3vEYOpC5Nd+m0ct CqLUtVeq6wpql1PLswobiPdxdLznkgrXchvXY5LwURTtr1Gtq1JjAU+HdJ2UyRyZ WFe2HW2kriWswaprsyu6rNlmXzDTaNo/Gn6c0d//J0XYhg1qoxWsN95pzp7gMkb/ YKx//Ss/lN4joRsqQGBQPCF43gFJwnmXdmwhyS4EcsCJ7DfqQ9UHgx42ypOgY497 rVY7wTQeHSDOaQxkp+Vha0IvotIKll110J7bMpDL01++li1AiCMFjSl92dA6mHxL ZYGIjiUgTyjOuhuhkdLXbQLCUMST4VD8GOxxajil9jqBTwehUrUrNW/SOmP0az/p fq0Y8XxdynY8PKuBRPAM4f5hKIVtjzkz9m9XMu4bstYhIJNkfOQSiz1XzxS0T5/8 4VxaNF5we/l50HTnB4rJ0FGTzXiWO8BO3zSeD1caF+7ctHQWsypNBJYyKW52ITt3 r6K17klsoNlmh8XjOt7wCVvNgsHj8SlsmtpN3GiTivDP0FVDY7DDA92teCRZB4TZ EhubWrQGERAPzG6Ud+bujUpwdgJ91MVvIuBjotAgNMT2Peayfc0V9PA4+7Xg5jW2 1wyyU3lr8y4= =4Ivl -----END PGP SIGNATURE----- Merge tag 'pull-request-2024-03-18' of https://gitlab.com/thuth/qemu into staging * Clarify s390x CPU topology docs and CPU compatibility error messages * Improve the Sparc CPU help text * Rename SOFTMMU to SYSTEM in the travis.yml file # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmX4f/gRHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbULnBAAgAPw1tonqEyt0kEw+i088do3yprrcoA+ # vTWB1Qk8ieL7nmBaFtsKYXVeoY+KICSGY4UvN3+jFot8uwzSz3vEYOpC5Nd+m0ct # CqLUtVeq6wpql1PLswobiPdxdLznkgrXchvXY5LwURTtr1Gtq1JjAU+HdJ2UyRyZ # WFe2HW2kriWswaprsyu6rNlmXzDTaNo/Gn6c0d//J0XYhg1qoxWsN95pzp7gMkb/ # YKx//Ss/lN4joRsqQGBQPCF43gFJwnmXdmwhyS4EcsCJ7DfqQ9UHgx42ypOgY497 # rVY7wTQeHSDOaQxkp+Vha0IvotIKll110J7bMpDL01++li1AiCMFjSl92dA6mHxL # ZYGIjiUgTyjOuhuhkdLXbQLCUMST4VD8GOxxajil9jqBTwehUrUrNW/SOmP0az/p # fq0Y8XxdynY8PKuBRPAM4f5hKIVtjzkz9m9XMu4bstYhIJNkfOQSiz1XzxS0T5/8 # 4VxaNF5we/l50HTnB4rJ0FGTzXiWO8BO3zSeD1caF+7ctHQWsypNBJYyKW52ITt3 # r6K17klsoNlmh8XjOt7wCVvNgsHj8SlsmtpN3GiTivDP0FVDY7DDA92teCRZB4TZ # EhubWrQGERAPzG6Ud+bujUpwdgJ91MVvIuBjotAgNMT2Peayfc0V9PA4+7Xg5jW2 # 1wyyU3lr8y4= # =4Ivl # -----END PGP SIGNATURE----- # gpg: Signature made Mon 18 Mar 2024 17:55:04 GMT # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * tag 'pull-request-2024-03-18' of https://gitlab.com/thuth/qemu: travis-ci: Rename SOFTMMU -> SYSTEM target/sparc/cpu: Improve the CPU help text target/s390x: improve cpu compatibility check error message docs/s390: clarify even more that cpu-topology is KVM-only Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
ddc27d2ad9
@ -35,7 +35,7 @@ env:
|
||||
- TEST_BUILD_CMD=""
|
||||
- TEST_CMD="make check V=1"
|
||||
# This is broadly a list of "mainline" system targets which have support across the major distros
|
||||
- MAIN_SOFTMMU_TARGETS="aarch64-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
|
||||
- MAIN_SYSTEM_TARGETS="aarch64-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
|
||||
- CCACHE_SLOPPINESS="include_file_ctime,include_file_mtime"
|
||||
- CCACHE_MAXSIZE=1G
|
||||
- G_MESSAGES_DEBUG=error
|
||||
@ -114,7 +114,7 @@ jobs:
|
||||
env:
|
||||
- TEST_CMD="make check check-tcg V=1"
|
||||
- CONFIG="--disable-containers --enable-fdt=system
|
||||
--target-list=${MAIN_SOFTMMU_TARGETS} --cxx=/bin/false"
|
||||
--target-list=${MAIN_SYSTEM_TARGETS} --cxx=/bin/false"
|
||||
- UNRELIABLE=true
|
||||
|
||||
- name: "[ppc64] GCC check-tcg"
|
||||
@ -185,7 +185,7 @@ jobs:
|
||||
env:
|
||||
- TEST_CMD="make check check-tcg V=1"
|
||||
- CONFIG="--disable-containers --enable-fdt=system
|
||||
--target-list=${MAIN_SOFTMMU_TARGETS},s390x-linux-user"
|
||||
--target-list=${MAIN_SYSTEM_TARGETS},s390x-linux-user"
|
||||
- UNRELIABLE=true
|
||||
script:
|
||||
- BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$?
|
||||
@ -226,7 +226,7 @@ jobs:
|
||||
- genisoimage
|
||||
env:
|
||||
- CONFIG="--disable-containers --enable-fdt=system --audio-drv-list=sdl
|
||||
--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
|
||||
--disable-user --target-list-exclude=${MAIN_SYSTEM_TARGETS}"
|
||||
|
||||
- name: "[s390x] GCC (user)"
|
||||
arch: s390x
|
||||
|
@ -1,6 +1,8 @@
|
||||
Introduction
|
||||
============
|
||||
|
||||
.. _Accelerators:
|
||||
|
||||
Virtualisation Accelerators
|
||||
---------------------------
|
||||
|
||||
|
@ -25,17 +25,19 @@ monitor polarization changes, see ``docs/devel/s390-cpu-topology.rst``.
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
To use the CPU topology, you need to run with KVM on a s390x host that
|
||||
uses the Linux kernel v6.0 or newer (which provide the so-called
|
||||
To use the CPU topology, you currently need to choose the KVM accelerator.
|
||||
See :ref:`Accelerators` for more details about accelerators and how to select them.
|
||||
|
||||
The s390x host needs to use a Linux kernel v6.0 or newer (which provides the so-called
|
||||
``KVM_CAP_S390_CPU_TOPOLOGY`` capability that allows QEMU to signal the
|
||||
CPU topology facility via the so-called STFLE bit 11 to the VM).
|
||||
|
||||
Enabling CPU topology
|
||||
---------------------
|
||||
|
||||
Currently, CPU topology is only enabled in the host model by default.
|
||||
Currently, CPU topology is enabled by default only in the "host" CPU model.
|
||||
|
||||
Enabling CPU topology in a CPU model is done by setting the CPU flag
|
||||
Enabling CPU topology in another CPU model is done by setting the CPU flag
|
||||
``ctop`` to ``on`` as in:
|
||||
|
||||
.. code-block:: bash
|
||||
@ -132,7 +134,7 @@ In the following machine we define 8 sockets with 4 cores each.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ qemu-system-s390x -m 2G \
|
||||
$ qemu-system-s390x -accel kvm -m 2G \
|
||||
-cpu gen16b,ctop=on \
|
||||
-smp cpus=5,sockets=8,cores=4,maxcpus=32 \
|
||||
-device host-s390x-cpu,core-id=14 \
|
||||
@ -227,7 +229,7 @@ with vertical high entitlement.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ qemu-system-s390x -m 2G \
|
||||
$ qemu-system-s390x -accel kvm -m 2G \
|
||||
-cpu gen16b,ctop=on \
|
||||
-smp cpus=1,sockets=8,cores=4,maxcpus=32 \
|
||||
\
|
||||
|
@ -500,6 +500,16 @@ static void error_prepend_missing_feat(const char *name, void *opaque)
|
||||
error_prepend((Error **) opaque, "%s ", name);
|
||||
}
|
||||
|
||||
static void check_compat_model_failed(Error **errp,
|
||||
const S390CPUModel *max_model,
|
||||
const char *msg)
|
||||
{
|
||||
error_setg(errp, "%s. Maximum supported model in the current configuration: \'%s\'",
|
||||
msg, max_model->def->name);
|
||||
error_append_hint(errp, "Consider a different accelerator, try \"-accel help\"\n");
|
||||
return;
|
||||
}
|
||||
|
||||
static void check_compatibility(const S390CPUModel *max_model,
|
||||
const S390CPUModel *model, Error **errp)
|
||||
{
|
||||
@ -507,15 +517,11 @@ static void check_compatibility(const S390CPUModel *max_model,
|
||||
S390FeatBitmap missing;
|
||||
|
||||
if (model->def->gen > max_model->def->gen) {
|
||||
error_setg(errp, "Selected CPU generation is too new. Maximum "
|
||||
"supported model in the configuration: \'%s\'",
|
||||
max_model->def->name);
|
||||
check_compat_model_failed(errp, max_model, "Selected CPU generation is too new");
|
||||
return;
|
||||
} else if (model->def->gen == max_model->def->gen &&
|
||||
model->def->ec_ga > max_model->def->ec_ga) {
|
||||
error_setg(errp, "Selected CPU GA level is too new. Maximum "
|
||||
"supported model in the configuration: \'%s\'",
|
||||
max_model->def->name);
|
||||
check_compat_model_failed(errp, max_model, "Selected CPU GA level is too new");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -537,7 +543,9 @@ static void check_compatibility(const S390CPUModel *max_model,
|
||||
error_setg(errp, " ");
|
||||
s390_feat_bitmap_to_ascii(missing, errp, error_prepend_missing_feat);
|
||||
error_prepend(errp, "Some features requested in the CPU model are not "
|
||||
"available in the configuration: ");
|
||||
"available in the current configuration: ");
|
||||
error_append_hint(errp,
|
||||
"Consider a different accelerator, QEMU, or kernel version\n");
|
||||
}
|
||||
|
||||
S390CPUModel *get_max_cpu_model(Error **errp)
|
||||
|
@ -574,9 +574,10 @@ void sparc_cpu_list(void)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
qemu_printf("Available CPU types:\n");
|
||||
for (i = 0; i < ARRAY_SIZE(sparc_defs); i++) {
|
||||
qemu_printf("Sparc %16s IU " TARGET_FMT_lx
|
||||
" FPU %08x MMU %08x NWINS %d ",
|
||||
qemu_printf(" %-20s (IU " TARGET_FMT_lx
|
||||
" FPU %08x MMU %08x NWINS %d) ",
|
||||
sparc_defs[i].name,
|
||||
sparc_defs[i].iu_version,
|
||||
sparc_defs[i].fpu_version,
|
||||
|
Loading…
Reference in New Issue
Block a user