* 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 INSTALL_COMMAND: pkg install -y
TEST_TARGETS: check TEST_TARGETS: check
x64-macos-11-base-build: aarch64-macos-12-base-build:
extends: .cirrus_build_job extends: .cirrus_build_job
variables: variables:
NAME: macos-11 NAME: macos-12
CIRRUS_VM_INSTANCE_TYPE: osx_instance CIRRUS_VM_INSTANCE_TYPE: macos_instance
CIRRUS_VM_IMAGE_SELECTOR: image 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_CPUS: 12
CIRRUS_VM_RAM: 24G CIRRUS_VM_RAM: 24G
UPDATE_COMMAND: brew update UPDATE_COMMAND: brew update
INSTALL_COMMAND: brew install INSTALL_COMMAND: brew install
PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin PATH_EXTRA: /opt/homebrew/ccache/libexec:/opt/homebrew/gettext/bin
PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig 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 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 # THIS FILE WAS AUTO-GENERATED
# #
# $ lcitool variables macos-11 qemu # $ lcitool variables macos-12 qemu
# #
# https://gitlab.com/libvirt/libvirt-ci # https://gitlab.com/libvirt/libvirt-ci
CCACHE='/usr/local/bin/ccache' CCACHE='/opt/homebrew/bin/ccache'
CPAN_PKGS='' CPAN_PKGS=''
CROSS_PKGS='' CROSS_PKGS=''
MAKE='/usr/local/bin/gmake' MAKE='/opt/homebrew/bin/gmake'
NINJA='/usr/local/bin/ninja' NINJA='/opt/homebrew/bin/ninja'
PACKAGING_COMMAND='brew' 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' 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' 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 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 system. More details on the inspiration for developing biosbits and its real
life uses can be found in [#a]_ and [#b]_. 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 For QEMU, we maintain a fork of bios bits in gitlab along with all the
dependent submodules: dependent submodules here: https://gitlab.com/qemu-project/biosbits-bits
https://gitlab.com/qemu-project/biosbits-bits
This fork contains numerous fixes, a newer acpica and changes specific to This fork contains numerous fixes, a newer acpica and changes specific to
running this avocado QEMU tests using bits. The author of this document running this avocado QEMU tests using bits. The author of this document
is the sole maintainer of the QEMU fork of bios bits repo. 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-config
│ │ └── bits-cfg.txt │ │ └── bits-cfg.txt
│ ├── bits-tests │ ├── bits-tests
│ │ ├── smbios.py2 │ ├── smbios.py2
│ │ ├── testacpi.py2 │ ├── testacpi.py2
│ │ └── testcpuid.py2 │ └── testcpuid.py2
│ └── README
├── acpi-bits.py ├── acpi-bits.py
* ``tests/avocado``: * ``tests/avocado``:

View file

@ -53,6 +53,32 @@ recommended to specify a CD-ROM device via ``-device scsi-cd`` (as mentioned
above) instead. 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 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 * have an offset of 4 + n * 8 bytes within the struct in order
* to keep it double-word aligned. * to keep it double-word aligned.
* The total size of the struct must never exceed 28 bytes. * 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. * in pc-bios/s390-ccw/iplb.h.
*/ */
struct QemuIplParameters { struct QemuIplParameters {

View file

@ -313,7 +313,7 @@ retry:
/* /*
* Get the host function handle from the vfio CLP capabilities chain. Returns * 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 * 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) * not include the fh)
*/ */
bool s390_pci_get_host_fh(S390PCIBusDevice *pbdev, uint32_t *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, 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); rc = migrate_add_blocker(pv_mig_blocker, &local_err);
if (rc) { if (rc) {
ram_block_discard_disable(false); ram_block_discard_disable(false);
@ -449,7 +449,7 @@ static void s390_machine_reset(MachineState *machine, ShutdownCause reason)
break; break;
case S390_RESET_MODIFIED_CLEAR: 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. * and lose access to VIRTIO structures in guest memory.
*/ */
subsystem_reset(); subsystem_reset();
@ -462,7 +462,7 @@ static void s390_machine_reset(MachineState *machine, ShutdownCause reason)
break; break;
case S390_RESET_LOAD_NORMAL: 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. * and lose access to VIRTIO structures in guest memory.
*/ */
subsystem_reset(); subsystem_reset();

View file

@ -20,7 +20,7 @@ struct pmcw {
__u32 intparm; /* interruption parameter */ __u32 intparm; /* interruption parameter */
__u32 qf:1; /* qdio facility */ __u32 qf:1; /* qdio facility */
__u32 w:1; __u32 w:1;
__u32 isc:3; /* interruption sublass */ __u32 isc:3; /* interruption subclass */
__u32 res5:3; /* reserved zeros */ __u32 res5:3; /* reserved zeros */
__u32 ena:1; /* enabled */ __u32 ena:1; /* enabled */
__u32 lm:2; /* limit mode */ __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 #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 * in hw/s390x/ipl.h
*/ */
struct QemuIplParameters { struct QemuIplParameters {

View file

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

View file

@ -24,13 +24,13 @@ struct S390CPUDef {
uint8_t gen; /* hw generation identification */ uint8_t gen; /* hw generation identification */
uint16_t type; /* cpu type identification */ uint16_t type; /* cpu type identification */
uint8_t ec_ga; /* EC GA version (on which also the BC is based) */ 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 */ uint32_t hmfai; /* hypervisor-managed facilities */
/* base/min features, must never be changed between QEMU versions */ /* base/min features, must never be changed between QEMU versions */
S390FeatBitmap base_feat; S390FeatBitmap base_feat;
/* used to init base_feat from generated data */ /* used to init base_feat from generated data */
S390FeatInit base_init; S390FeatInit base_init;
/* deafault features, QEMU version specific */ /* default features, QEMU version specific */
S390FeatBitmap default_feat; S390FeatBitmap default_feat;
/* used to init default_feat from generated data */ /* used to init default_feat from generated data */
S390FeatInit default_init; 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, * As operand exceptions have a lower priority than access exceptions,
* we check whether the memory area is writable (injecting the * 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))) { if (!s390_cpu_virt_mem_check_write(cpu, addr, ar, sizeof(schib))) {
s390_program_interrupt(env, PGM_OPERAND, ra); 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 */ /* don't trigger a cpu_loop_exit(), use an interrupt instead */
cpu_interrupt(CPU(cpu), CPU_INTERRUPT_HALT); cpu_interrupt(CPU(cpu), CPU_INTERRUPT_HALT);
} else if (cs->halted) { } 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); 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. * invalid/divbyzero cannot coexist with other conditions.
* overflow/underflow however can coexist with inexact, we have to * 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) {
if (s390_exc & ~S390_IEEE_MASK_INEXACT & env->fpc >> 24) { 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 */ /* same as machine type number in STORE CPU ID, but in EBCDIC */
snprintf(type, ARRAY_SIZE(type), "%X", cpu->model->def->type); snprintf(type, ARRAY_SIZE(type), "%X", cpu->model->def->type);
ebcdic_put(sysib.sysib_111.type, type, 4); 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.model, "QEMU ", 16);
ebcdic_put(sysib.sysib_111.sequence, "QEMU ", 16); ebcdic_put(sysib.sysib_111.sequence, "QEMU ", 16);
ebcdic_put(sysib.sysib_111.plant, "QEMU", 4); 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; TCGv_i32 tmp;
/* Remember what pgm exeption this was. */ /* Remember what pgm exception this was. */
tmp = tcg_const_i32(code); tmp = tcg_const_i32(code);
tcg_gen_st_i32(tmp, cpu_env, offsetof(CPUS390XState, int_pgm_code)); tcg_gen_st_i32(tmp, cpu_env, offsetof(CPUS390XState, int_pgm_code));
tcg_temp_free_i32(tmp); 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 * 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) { if (b2 && x2) {
tcg_gen_add_i64(tmp, regs[b2], regs[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; break;
case 0x94: 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) { if (v1 != v2 && v1 != v3) {
const uint8_t src_es = get_field(s, m4); const uint8_t src_es = get_field(s, m4);
const uint8_t dst_es = src_es - 1; 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(); l2 = tcg_temp_new_i64();
h2 = 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(l1, get_field(s, v2), 0, ES_64);
read_vec_element_i64(h1, get_field(s, v3), 0, ES_64); read_vec_element_i64(h1, get_field(s, v3), 0, ES_64);
tcg_gen_mulu2_i64(l1, h1, l1, h1); 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); 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(l2, get_field(s, v2), 1, ES_64);
read_vec_element_i64(h2, get_field(s, v3), 1, ES_64); read_vec_element_i64(h2, get_field(s, v3), 1, ES_64);
tcg_gen_mulu2_i64(l2, h2, l2, h2); 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 :avocado: tags=acpi
""" """
# in slower systems the test can take as long as 3 minutes to complete.
timeout = 200
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self._vm = None 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-12")
generate_cirrus("freebsd-13") generate_cirrus("freebsd-13")
generate_cirrus("macos-11") generate_cirrus("macos-12")
sys.exit(0) sys.exit(0)
except Exception as ex: except Exception as ex: