* Add s390x documentation for the "loadparm" machine parameter

* Spelling fixes in the s390x code
 * Update the macOS Cirrus-CI job to use aarch64 hosts
 * Increase timeout and fix comments in the acpi avacodo test
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmN1+DYRHHRodXRoQHJl
 ZGhhdC5jb20ACgkQLtnXdP5wLbVg+A//Zt85xV8CEIVHRcvP3CPC35/goJ5O73Yj
 WwU2mck/1F0g06nsxrlAKpQuh82BJ+qRNpTnCY4n+owNO1oMgNZ7Em2vNlVjazvQ
 7xsMpTvasoudYaQHES4Dz3l8j8E7Y1Xc3uks/Y5jBqXR5R+G2Pu2iSYDv8VGBjqt
 v4Cmjk48j9taVeYosYfHVOH17TRbAYDVqtppLtEWil8Zqjn7FKPDhexszaCIfql/
 M7CmTEjB6myt4Gjrby7HHEII1rorhYI0A+0Y6qyYA8EuF69f1tuqpLtImTycXFVF
 7Wkx+9QAvPQsO+LmpK5ZYvsLPkouPqgvvxERCzI1mZkDqRs5TF0rIyQPaJfL8G8x
 RF0CVkIHER8umCNBfCThIsNYMesfWgFhoNOTmJyoJRb3OagPlIhkhx8zRXZ4MwIM
 6tfhYWQa3SGVNWs6dzYwfHGw67/YuU8RT/6q9pPsUgHMoPSFc0aYsyD5hTyY6hOX
 49SrDnv4rwLGutFiI1VR8/W8DPVXpn714hOJbSk1RRfXj8ZboHtQPBRrrBchMK4+
 kb/PgGLO2eOljR9mrCwpXNmJdeZ2KiOlhak2vV1rqjdOUsYc1u8k6tnwrJJjVu45
 JoT4/tWgDrfFcY9srngYlk2NzaUrloTIWSltAc31nq+1RfZsiyuDAnKZFH2v1Y0j
 fTFq2CFm7rE=
 =eS4s
 -----END PGP SIGNATURE-----

Merge tag 'pull-request-2022-11-17' of https://gitlab.com/thuth/qemu into staging

* Add s390x documentation for the "loadparm" machine parameter
* Spelling fixes in the s390x code
* Update the macOS Cirrus-CI job to use aarch64 hosts
* Increase timeout and fix comments in the acpi avacodo test

# -----BEGIN PGP SIGNATURE-----
#
# iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmN1+DYRHHRodXRoQHJl
# ZGhhdC5jb20ACgkQLtnXdP5wLbVg+A//Zt85xV8CEIVHRcvP3CPC35/goJ5O73Yj
# WwU2mck/1F0g06nsxrlAKpQuh82BJ+qRNpTnCY4n+owNO1oMgNZ7Em2vNlVjazvQ
# 7xsMpTvasoudYaQHES4Dz3l8j8E7Y1Xc3uks/Y5jBqXR5R+G2Pu2iSYDv8VGBjqt
# v4Cmjk48j9taVeYosYfHVOH17TRbAYDVqtppLtEWil8Zqjn7FKPDhexszaCIfql/
# M7CmTEjB6myt4Gjrby7HHEII1rorhYI0A+0Y6qyYA8EuF69f1tuqpLtImTycXFVF
# 7Wkx+9QAvPQsO+LmpK5ZYvsLPkouPqgvvxERCzI1mZkDqRs5TF0rIyQPaJfL8G8x
# RF0CVkIHER8umCNBfCThIsNYMesfWgFhoNOTmJyoJRb3OagPlIhkhx8zRXZ4MwIM
# 6tfhYWQa3SGVNWs6dzYwfHGw67/YuU8RT/6q9pPsUgHMoPSFc0aYsyD5hTyY6hOX
# 49SrDnv4rwLGutFiI1VR8/W8DPVXpn714hOJbSk1RRfXj8ZboHtQPBRrrBchMK4+
# kb/PgGLO2eOljR9mrCwpXNmJdeZ2KiOlhak2vV1rqjdOUsYc1u8k6tnwrJJjVu45
# JoT4/tWgDrfFcY9srngYlk2NzaUrloTIWSltAc31nq+1RfZsiyuDAnKZFH2v1Y0j
# fTFq2CFm7rE=
# =eS4s
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 17 Nov 2022 04:00:38 EST
# 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-2022-11-17' of https://gitlab.com/thuth/qemu:
  acpi/tests/avocado/bits: some misc fixes
  ci: replace x86_64 macos-11 with aarch64 macos-12
  docs/system/s390x: Document the "loadparm" machine property
  s390x: Fix spelling errors

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2022-11-17 12:39:16 -05:00
commit 2be954aa59
20 changed files with 66 additions and 41 deletions

View file

@ -70,19 +70,19 @@ x64-freebsd-13-build:
INSTALL_COMMAND: pkg install -y
TEST_TARGETS: check
x64-macos-11-base-build:
aarch64-macos-12-base-build:
extends: .cirrus_build_job
variables:
NAME: macos-11
CIRRUS_VM_INSTANCE_TYPE: osx_instance
NAME: macos-12
CIRRUS_VM_INSTANCE_TYPE: macos_instance
CIRRUS_VM_IMAGE_SELECTOR: image
CIRRUS_VM_IMAGE_NAME: big-sur-base
CIRRUS_VM_IMAGE_NAME: ghcr.io/cirruslabs/macos-monterey-base:latest
CIRRUS_VM_CPUS: 12
CIRRUS_VM_RAM: 24G
UPDATE_COMMAND: brew update
INSTALL_COMMAND: brew install
PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin
PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
PATH_EXTRA: /opt/homebrew/ccache/libexec:/opt/homebrew/gettext/bin
PKG_CONFIG_PATH: /opt/homebrew/curl/lib/pkgconfig:/opt/homebrew/ncurses/lib/pkgconfig:/opt/homebrew/readline/lib/pkgconfig
TEST_TARGETS: check-unit check-block check-qapi-schema check-softfloat check-qtest-x86_64

View file

@ -1,16 +1,16 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool variables macos-11 qemu
# $ lcitool variables macos-12 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
CCACHE='/usr/local/bin/ccache'
CCACHE='/opt/homebrew/bin/ccache'
CPAN_PKGS=''
CROSS_PKGS=''
MAKE='/usr/local/bin/gmake'
NINJA='/usr/local/bin/ninja'
MAKE='/opt/homebrew/bin/gmake'
NINJA='/opt/homebrew/bin/ninja'
PACKAGING_COMMAND='brew'
PIP3='/usr/local/bin/pip3'
PIP3='/opt/homebrew/bin/pip3'
PKGS='bash bc bison bzip2 capstone ccache cmocka ctags curl dbus diffutils dtc flex gcovr gettext git glib gnu-sed gnutls gtk+3 jemalloc jpeg-turbo json-c libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb llvm lzo make meson ncurses nettle ninja perl pixman pkg-config python3 rpm2cpio sdl2 sdl2_image snappy sparse spice-protocol tesseract texinfo usbredir vde vte3 zlib zstd'
PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme'
PYTHON='/usr/local/bin/python3'
PYTHON='/opt/homebrew/bin/python3'

View file

@ -16,11 +16,8 @@ end user. The other is that we have more control of what we wanted to test
and how by directly using acpica interpreter on top of the bios on a running
system. More details on the inspiration for developing biosbits and its real
life uses can be found in [#a]_ and [#b]_.
This directory contains tests written in python using avocado framework that
exercises the QEMU bios components using biosbits and reports test failures.
For QEMU, we maintain a fork of bios bits in gitlab along with all the
dependent submodules:
https://gitlab.com/qemu-project/biosbits-bits
dependent submodules here: https://gitlab.com/qemu-project/biosbits-bits
This fork contains numerous fixes, a newer acpica and changes specific to
running this avocado QEMU tests using bits. The author of this document
is the sole maintainer of the QEMU fork of bios bits repo.
@ -38,10 +35,9 @@ Under ``tests/avocado/`` as the root we have:
│ ├── bits-config
│ │ └── bits-cfg.txt
│ ├── bits-tests
│ │ ├── smbios.py2
│ │ ├── testacpi.py2
│ │ └── testcpuid.py2
│ └── README
│ ├── smbios.py2
│ ├── testacpi.py2
│ └── testcpuid.py2
├── acpi-bits.py
* ``tests/avocado``:

View file

@ -53,6 +53,32 @@ recommended to specify a CD-ROM device via ``-device scsi-cd`` (as mentioned
above) instead.
Selecting kernels with the ``loadparm`` property
------------------------------------------------
The ``s390-ccw-virtio`` machine supports the so-called ``loadparm`` parameter
which can be used to select the kernel on the disk of the guest that the
s390-ccw bios should boot. When starting QEMU, it can be specified like this::
qemu-system-s390x -machine s390-ccw-virtio,loadparm=<string>
The first way to use this parameter is to use the word ``PROMPT`` as the
``<string>`` here. In that case the s390-ccw bios will show a list of
installed kernels on the disk of the guest and ask the user to enter a number
to chose which kernel should be booted -- similar to what can be achieved by
specifying the ``-boot menu=on`` option when starting QEMU. Note that the menu
list will only show the names of the installed kernels when using a DASD-like
disk image with 4k byte sectors. On normal SCSI-style disks with 512-byte
sectors, there is not enough space for the zipl loader on the disk to store
the kernel names, so you only get a list without names here.
The second way to use this parameter is to use a number in the range from 0
to 31. The numbers that can be used here correspond to the numbers that are
shown when using the ``PROMPT`` option, and the s390-ccw bios will then try
to automatically boot the kernel that is associated with the given number.
Note that ``0`` can be used to boot the default entry.
Booting from a network device
-----------------------------

View file

@ -140,7 +140,7 @@ void s390_ipl_clear_reset_request(void);
* have an offset of 4 + n * 8 bytes within the struct in order
* to keep it double-word aligned.
* The total size of the struct must never exceed 28 bytes.
* This definition must be kept in sync with the defininition
* This definition must be kept in sync with the definition
* in pc-bios/s390-ccw/iplb.h.
*/
struct QemuIplParameters {

View file

@ -313,7 +313,7 @@ retry:
/*
* Get the host function handle from the vfio CLP capabilities chain. Returns
* true if a fh value was placed into the provided buffer. Returns false
* if a fh could not be obtained (ioctl failed or capabilitiy version does
* if a fh could not be obtained (ioctl failed or capability version does
* not include the fh)
*/
bool s390_pci_get_host_fh(S390PCIBusDevice *pbdev, uint32_t *fh)

View file

@ -354,7 +354,7 @@ static int s390_machine_protect(S390CcwMachineState *ms)
}
error_setg(&pv_mig_blocker,
"protected VMs are currently not migrateable.");
"protected VMs are currently not migratable.");
rc = migrate_add_blocker(pv_mig_blocker, &local_err);
if (rc) {
ram_block_discard_disable(false);
@ -449,7 +449,7 @@ static void s390_machine_reset(MachineState *machine, ShutdownCause reason)
break;
case S390_RESET_MODIFIED_CLEAR:
/*
* Susbsystem reset needs to be done before we unshare memory
* Subsystem reset needs to be done before we unshare memory
* and lose access to VIRTIO structures in guest memory.
*/
subsystem_reset();
@ -462,7 +462,7 @@ static void s390_machine_reset(MachineState *machine, ShutdownCause reason)
break;
case S390_RESET_LOAD_NORMAL:
/*
* Susbsystem reset needs to be done before we unshare memory
* Subsystem reset needs to be done before we unshare memory
* and lose access to VIRTIO structures in guest memory.
*/
subsystem_reset();

View file

@ -20,7 +20,7 @@ struct pmcw {
__u32 intparm; /* interruption parameter */
__u32 qf:1; /* qdio facility */
__u32 w:1;
__u32 isc:3; /* interruption sublass */
__u32 isc:3; /* interruption subclass */
__u32 res5:3; /* reserved zeros */
__u32 ena:1; /* enabled */
__u32 lm:2; /* limit mode */

View file

@ -81,7 +81,7 @@ extern IplParameterBlock iplb __attribute__((__aligned__(PAGE_SIZE)));
#define QIPL_FLAG_BM_OPTS_ZIPL 0x40
/*
* This definition must be kept in sync with the defininition
* This definition must be kept in sync with the definition
* in hw/s390x/ipl.h
*/
struct QemuIplParameters {

View file

@ -19,7 +19,7 @@ _start:
larl %r2, __bss_start
larl %r3, _end
slgr %r3, %r2 /* get sizeof bss */
ltgr %r3,%r3 /* bss emtpy? */
ltgr %r3,%r3 /* bss empty? */
jz done
aghi %r3,-1
srlg %r4,%r3,8 /* how many 256 byte chunks? */

View file

@ -24,13 +24,13 @@ struct S390CPUDef {
uint8_t gen; /* hw generation identification */
uint16_t type; /* cpu type identification */
uint8_t ec_ga; /* EC GA version (on which also the BC is based) */
uint8_t mha_pow; /* Maximum Host Adress Power, mha = 2^pow-1 */
uint8_t mha_pow; /* maximum host address power, mha = 2^pow-1 */
uint32_t hmfai; /* hypervisor-managed facilities */
/* base/min features, must never be changed between QEMU versions */
S390FeatBitmap base_feat;
/* used to init base_feat from generated data */
S390FeatInit base_init;
/* deafault features, QEMU version specific */
/* default features, QEMU version specific */
S390FeatBitmap default_feat;
/* used to init default_feat from generated data */
S390FeatInit default_init;

View file

@ -285,7 +285,7 @@ void ioinst_handle_stsch(S390CPU *cpu, uint64_t reg1, uint32_t ipb,
/*
* As operand exceptions have a lower priority than access exceptions,
* we check whether the memory area is writable (injecting the
* access execption if it is not) first.
* access exception if it is not) first.
*/
if (!s390_cpu_virt_mem_check_write(cpu, addr, ar, sizeof(schib))) {
s390_program_interrupt(env, PGM_OPERAND, ra);

View file

@ -553,7 +553,7 @@ try_deliver:
/* don't trigger a cpu_loop_exit(), use an interrupt instead */
cpu_interrupt(CPU(cpu), CPU_INTERRUPT_HALT);
} else if (cs->halted) {
/* unhalt if we had a WAIT PSW somehwere in our injection chain */
/* unhalt if we had a WAIT PSW somewhere in our injection chain */
s390_cpu_unhalt(cpu);
}
}

View file

@ -89,7 +89,7 @@ static void handle_exceptions(CPUS390XState *env, bool XxC, uintptr_t retaddr)
/*
* invalid/divbyzero cannot coexist with other conditions.
* overflow/underflow however can coexist with inexact, we have to
* handle it separatly.
* handle it separately.
*/
if (s390_exc & ~S390_IEEE_MASK_INEXACT) {
if (s390_exc & ~S390_IEEE_MASK_INEXACT & env->fpc >> 24) {

View file

@ -333,7 +333,7 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0, uint64_t r0, uint64_t r1)
/* same as machine type number in STORE CPU ID, but in EBCDIC */
snprintf(type, ARRAY_SIZE(type), "%X", cpu->model->def->type);
ebcdic_put(sysib.sysib_111.type, type, 4);
/* model number (not stored in STORE CPU ID for z/Architecure) */
/* model number (not stored in STORE CPU ID for z/Architecture) */
ebcdic_put(sysib.sysib_111.model, "QEMU ", 16);
ebcdic_put(sysib.sysib_111.sequence, "QEMU ", 16);
ebcdic_put(sysib.sysib_111.plant, "QEMU", 4);

View file

@ -435,7 +435,7 @@ static void gen_program_exception(DisasContext *s, int code)
{
TCGv_i32 tmp;
/* Remember what pgm exeption this was. */
/* Remember what pgm exception this was. */
tmp = tcg_const_i32(code);
tcg_gen_st_i32(tmp, cpu_env, offsetof(CPUS390XState, int_pgm_code));
tcg_temp_free_i32(tmp);
@ -491,7 +491,7 @@ static TCGv_i64 get_address(DisasContext *s, int x2, int b2, int d2)
/*
* Note that d2 is limited to 20 bits, signed. If we crop negative
* displacements early we create larger immedate addends.
* displacements early we create larger immediate addends.
*/
if (b2 && x2) {
tcg_gen_add_i64(tmp, regs[b2], regs[x2]);

View file

@ -960,7 +960,7 @@ static DisasJumpType op_vpk(DisasContext *s, DisasOps *o)
}
break;
case 0x94:
/* If sources and destination dont't overlap -> fast path */
/* If sources and destination don't overlap -> fast path */
if (v1 != v2 && v1 != v3) {
const uint8_t src_es = get_field(s, m4);
const uint8_t dst_es = src_es - 1;
@ -2075,7 +2075,7 @@ static DisasJumpType op_vmsl(DisasContext *s, DisasOps *o)
l2 = tcg_temp_new_i64();
h2 = tcg_temp_new_i64();
/* Multipy both even elements from v2 and v3 */
/* Multiply both even elements from v2 and v3 */
read_vec_element_i64(l1, get_field(s, v2), 0, ES_64);
read_vec_element_i64(h1, get_field(s, v3), 0, ES_64);
tcg_gen_mulu2_i64(l1, h1, l1, h1);
@ -2084,7 +2084,7 @@ static DisasJumpType op_vmsl(DisasContext *s, DisasOps *o)
tcg_gen_add2_i64(l1, h1, l1, h1, l1, h1);
}
/* Multipy both odd elements from v2 and v3 */
/* Multiply both odd elements from v2 and v3 */
read_vec_element_i64(l2, get_field(s, v2), 1, ES_64);
read_vec_element_i64(h2, get_field(s, v3), 1, ES_64);
tcg_gen_mulu2_i64(l2, h2, l2, h2);

View file

@ -134,6 +134,9 @@ class AcpiBitsTest(QemuBaseTest): #pylint: disable=too-many-instance-attributes
:avocado: tags=acpi
"""
# in slower systems the test can take as long as 3 minutes to complete.
timeout = 200
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._vm = None

@ -1 +1 @@
Subproject commit d40e203631eb3eacee17e8cf8fd20aa5152db62a
Subproject commit e3eb28cf2e17fbcf7fe7e19505ee432b8ec5bbb5

View file

@ -176,7 +176,7 @@ try:
#
generate_cirrus("freebsd-12")
generate_cirrus("freebsd-13")
generate_cirrus("macos-11")
generate_cirrus("macos-12")
sys.exit(0)
except Exception as ex: