* One more fix for the migration qtest
* Remove the edk2 gitlab-CI job * Improve the build-system-alpine CI job * Fix emulation of the CHRL/CGHRL s390x instructions -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmQPLmgRHHRodXRoQHJl ZGhhdC5jb20ACgkQLtnXdP5wLbUrlhAAsfqqK5UQodnUTfuu/XitdLaMc31Hbqrt aKbKvg/ejL2cMzNC0bTZU1Xv8lx09HEij27Fod5O2z73y25FZIn+7mz8POhSeK0k C07mrssaPUzM7OcnFmXrsQ6jRSDJEtMLSiYHly4UKjeokV7YAk9gxjrF2CVPOqg3 YsZFrY6HZHX3H3Me2rtDKgwxzohfwpVKKZS7oO+yUfRgPdcK0jsIkpBKgQjTfNys CNtUH5ULC6IBdigiMAW66rNDetwkhoKyfuNcEmOCBR93v/kSDLJugnVcgJlxwwq+ 8ULr4zBlf3MlmZ5xZlPdZ/7dxfdB2LhSALi476ebnVlHq8TIxsPOVJiJ8K3oqUxP OfrLhn7el/qozl+aUhfHtoWfYZ0NI/+qffgXFOca/zi5UyqmTXs5GBjZIEoYUsoW Vs9mXyoZelHYn0b3u2ClGMiZjPGACYSTVFQJevNKOTxm4gwGpFK7aH5pmkJpFsJW 582DXFIFk2Dj0flThAxYcZE2QlnDgglvIaKB5ZuaUyIZeugRMVbO1euqik6WzIFN tm8wxRmYi7ao388YXYQd/OFSaYuk5A2AG3cmfev4164z87rtCitOUHa8TPvA5oTL /xbJMymKq6yCQpEDEaWQox6Wk1jhEv/Zzg3iT0hv1aVPn79bnPJDmm0me6U1yDLl sLco473rMHI= =uugc -----END PGP SIGNATURE----- Merge tag 'pull-request-2023-03-13' of https://gitlab.com/thuth/qemu into staging * One more fix for the migration qtest * Remove the edk2 gitlab-CI job * Improve the build-system-alpine CI job * Fix emulation of the CHRL/CGHRL s390x instructions # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmQPLmgRHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbUrlhAAsfqqK5UQodnUTfuu/XitdLaMc31Hbqrt # aKbKvg/ejL2cMzNC0bTZU1Xv8lx09HEij27Fod5O2z73y25FZIn+7mz8POhSeK0k # C07mrssaPUzM7OcnFmXrsQ6jRSDJEtMLSiYHly4UKjeokV7YAk9gxjrF2CVPOqg3 # YsZFrY6HZHX3H3Me2rtDKgwxzohfwpVKKZS7oO+yUfRgPdcK0jsIkpBKgQjTfNys # CNtUH5ULC6IBdigiMAW66rNDetwkhoKyfuNcEmOCBR93v/kSDLJugnVcgJlxwwq+ # 8ULr4zBlf3MlmZ5xZlPdZ/7dxfdB2LhSALi476ebnVlHq8TIxsPOVJiJ8K3oqUxP # OfrLhn7el/qozl+aUhfHtoWfYZ0NI/+qffgXFOca/zi5UyqmTXs5GBjZIEoYUsoW # Vs9mXyoZelHYn0b3u2ClGMiZjPGACYSTVFQJevNKOTxm4gwGpFK7aH5pmkJpFsJW # 582DXFIFk2Dj0flThAxYcZE2QlnDgglvIaKB5ZuaUyIZeugRMVbO1euqik6WzIFN # tm8wxRmYi7ao388YXYQd/OFSaYuk5A2AG3cmfev4164z87rtCitOUHa8TPvA5oTL # /xbJMymKq6yCQpEDEaWQox6Wk1jhEv/Zzg3iT0hv1aVPn79bnPJDmm0me6U1yDLl # sLco473rMHI= # =uugc # -----END PGP SIGNATURE----- # gpg: Signature made Mon 13 Mar 2023 14:08:40 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-2023-03-13' of https://gitlab.com/thuth/qemu: tests/tcg/s390x: Add C(G)HRL test target/s390x: Fix emulation of C(G)HRL gitlab-ci.d/buildtest: Rework the target list of build-system-alpine gitlab-ci: Remove job building EDK2 firmware binaries tests/migration: Tweek auto converge limits check Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
5cfda4ce79
@ -9,8 +9,7 @@ build-system-alpine:
|
||||
- job: amd64-alpine-container
|
||||
variables:
|
||||
IMAGE: alpine
|
||||
TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
|
||||
microblazeel-softmmu mips64el-softmmu
|
||||
TARGETS: avr-softmmu loongarch64-softmmu mips64-softmmu mipsel-softmmu
|
||||
MAKE_CHECK_ARGS: check-build
|
||||
CONFIGURE_ARGS: --enable-docs --enable-trace-backends=log,simple,syslog
|
||||
|
||||
@ -72,8 +71,8 @@ build-system-debian:
|
||||
variables:
|
||||
IMAGE: debian-amd64
|
||||
CONFIGURE_ARGS: --with-coroutine=sigaltstack
|
||||
TARGETS: arm-softmmu avr-softmmu i386-softmmu mipsel-softmmu
|
||||
riscv64-softmmu sh4eb-softmmu sparc-softmmu xtensaeb-softmmu
|
||||
TARGETS: arm-softmmu i386-softmmu riscv64-softmmu sh4eb-softmmu
|
||||
sparc-softmmu xtensaeb-softmmu
|
||||
MAKE_CHECK_ARGS: check-build
|
||||
|
||||
check-system-debian:
|
||||
|
@ -1,85 +0,0 @@
|
||||
# All jobs needing docker-edk2 must use the same rules it uses.
|
||||
.edk2_job_rules:
|
||||
rules:
|
||||
# Forks don't get pipelines unless QEMU_CI=1 or QEMU_CI=2 is set
|
||||
- if: '$QEMU_CI != "1" && $QEMU_CI != "2" && $CI_PROJECT_NAMESPACE != "qemu-project"'
|
||||
when: never
|
||||
|
||||
# In forks, if QEMU_CI=1 is set, then create manual job
|
||||
# if any of the files affecting the build are touched
|
||||
- if: '$QEMU_CI == "1" && $CI_PROJECT_NAMESPACE != "qemu-project"'
|
||||
changes:
|
||||
- .gitlab-ci.d/edk2.yml
|
||||
- .gitlab-ci.d/edk2/Dockerfile
|
||||
- roms/edk2/*
|
||||
when: manual
|
||||
|
||||
# In forks, if QEMU_CI=1 is set, then create manual job
|
||||
# if the branch/tag starts with 'edk2'
|
||||
- if: '$QEMU_CI == "1" && $CI_PROJECT_NAMESPACE != "qemu-project" && $CI_COMMIT_REF_NAME =~ /^edk2/'
|
||||
when: manual
|
||||
|
||||
# In forks, if QEMU_CI=1 is set, then create manual job
|
||||
# if last commit msg contains 'EDK2' (case insensitive)
|
||||
- if: '$QEMU_CI == "1" && $CI_PROJECT_NAMESPACE != "qemu-project" && $CI_COMMIT_MESSAGE =~ /edk2/i'
|
||||
when: manual
|
||||
|
||||
# Run if any files affecting the build output are touched
|
||||
- changes:
|
||||
- .gitlab-ci.d/edk2.yml
|
||||
- .gitlab-ci.d/edk2/Dockerfile
|
||||
- roms/edk2/*
|
||||
when: on_success
|
||||
|
||||
# Run if the branch/tag starts with 'edk2'
|
||||
- if: '$CI_COMMIT_REF_NAME =~ /^edk2/'
|
||||
when: on_success
|
||||
|
||||
# Run if last commit msg contains 'EDK2' (case insensitive)
|
||||
- if: '$CI_COMMIT_MESSAGE =~ /edk2/i'
|
||||
when: on_success
|
||||
|
||||
docker-edk2:
|
||||
extends: .edk2_job_rules
|
||||
stage: containers
|
||||
image: docker:19.03.1
|
||||
services:
|
||||
- docker:19.03.1-dind
|
||||
variables:
|
||||
GIT_DEPTH: 3
|
||||
IMAGE_TAG: $CI_REGISTRY_IMAGE:edk2-cross-build
|
||||
# We don't use TLS
|
||||
DOCKER_HOST: tcp://docker:2375
|
||||
DOCKER_TLS_CERTDIR: ""
|
||||
before_script:
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
script:
|
||||
- docker pull $IMAGE_TAG || true
|
||||
- docker build --cache-from $IMAGE_TAG --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
|
||||
--tag $IMAGE_TAG .gitlab-ci.d/edk2
|
||||
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
|
||||
- docker push $IMAGE_TAG
|
||||
|
||||
build-edk2:
|
||||
extends: .edk2_job_rules
|
||||
stage: build
|
||||
needs: ['docker-edk2']
|
||||
artifacts:
|
||||
paths: # 'artifacts.zip' will contains the following files:
|
||||
- pc-bios/edk2*bz2
|
||||
- pc-bios/edk2-licenses.txt
|
||||
- edk2-stdout.log
|
||||
- edk2-stderr.log
|
||||
image: $CI_REGISTRY_IMAGE:edk2-cross-build
|
||||
variables:
|
||||
GIT_DEPTH: 3
|
||||
script: # Clone the required submodules and build EDK2
|
||||
- git submodule update --init roms/edk2
|
||||
- git -C roms/edk2 submodule update --init --
|
||||
ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3
|
||||
BaseTools/Source/C/BrotliCompress/brotli
|
||||
CryptoPkg/Library/OpensslLib/openssl
|
||||
MdeModulePkg/Library/BrotliCustomDecompressLib/brotli
|
||||
- export JOBS=$(($(getconf _NPROCESSORS_ONLN) + 1))
|
||||
- echo "=== Using ${JOBS} simultaneous jobs ==="
|
||||
- make -j${JOBS} -C roms efi 2>&1 1>edk2-stdout.log | tee -a edk2-stderr.log >&2
|
@ -1,27 +0,0 @@
|
||||
#
|
||||
# Docker image to cross-compile EDK2 firmware binaries
|
||||
#
|
||||
FROM ubuntu:18.04
|
||||
|
||||
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
|
||||
|
||||
# Install packages required to build EDK2
|
||||
RUN apt update \
|
||||
&& \
|
||||
\
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
apt install --assume-yes --no-install-recommends \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
dos2unix \
|
||||
gcc-aarch64-linux-gnu \
|
||||
gcc-arm-linux-gnueabi \
|
||||
git \
|
||||
iasl \
|
||||
make \
|
||||
nasm \
|
||||
python3 \
|
||||
uuid-dev \
|
||||
&& \
|
||||
\
|
||||
rm -rf /var/lib/apt/lists/*
|
@ -4,7 +4,6 @@
|
||||
include:
|
||||
- local: '/.gitlab-ci.d/base.yml'
|
||||
- local: '/.gitlab-ci.d/stages.yml'
|
||||
- local: '/.gitlab-ci.d/edk2.yml'
|
||||
- local: '/.gitlab-ci.d/opensbi.yml'
|
||||
- local: '/.gitlab-ci.d/containers.yml'
|
||||
- local: '/.gitlab-ci.d/crossbuilds.yml'
|
||||
|
@ -3344,8 +3344,6 @@ F: roms/edk2
|
||||
F: roms/edk2-*
|
||||
F: tests/data/uefi-boot-images/
|
||||
F: tests/uefi-test-tools/
|
||||
F: .gitlab-ci.d/edk2.yml
|
||||
F: .gitlab-ci.d/edk2/
|
||||
|
||||
VT-d Emulation
|
||||
M: Michael S. Tsirkin <mst@redhat.com>
|
||||
|
@ -199,8 +199,8 @@
|
||||
C(0xe55c, CHSI, SIL, GIE, m1_32s, i2, 0, 0, 0, cmps64)
|
||||
C(0xe558, CGHSI, SIL, GIE, m1_64, i2, 0, 0, 0, cmps64)
|
||||
/* COMPARE HALFWORD RELATIVE LONG */
|
||||
C(0xc605, CHRL, RIL_b, GIE, r1_o, mri2_32s, 0, 0, 0, cmps32)
|
||||
C(0xc604, CGHRL, RIL_b, GIE, r1_o, mri2_64, 0, 0, 0, cmps64)
|
||||
C(0xc605, CHRL, RIL_b, GIE, r1_o, mri2_16s, 0, 0, 0, cmps32)
|
||||
C(0xc604, CGHRL, RIL_b, GIE, r1_o, mri2_16s, 0, 0, 0, cmps64)
|
||||
/* COMPARE HIGH */
|
||||
C(0xb9cd, CHHR, RRE, HW, r1_sr32, r2_sr32, 0, 0, 0, cmps32)
|
||||
C(0xb9dd, CHLR, RRE, HW, r1_sr32, r2_o, 0, 0, 0, cmps32)
|
||||
|
@ -5979,6 +5979,13 @@ static void in2_m2_64a(DisasContext *s, DisasOps *o)
|
||||
#define SPEC_in2_m2_64a 0
|
||||
#endif
|
||||
|
||||
static void in2_mri2_16s(DisasContext *s, DisasOps *o)
|
||||
{
|
||||
o->in2 = tcg_temp_new_i64();
|
||||
tcg_gen_qemu_ld16s(o->in2, gen_ri2(s), get_mem_index(s));
|
||||
}
|
||||
#define SPEC_in2_mri2_16s 0
|
||||
|
||||
static void in2_mri2_16u(DisasContext *s, DisasOps *o)
|
||||
{
|
||||
o->in2 = tcg_temp_new_i64();
|
||||
|
@ -408,8 +408,8 @@ static void migrate_set_parameter_str(QTestState *who, const char *parameter,
|
||||
|
||||
static void migrate_ensure_non_converge(QTestState *who)
|
||||
{
|
||||
/* Can't converge with 1ms downtime + 30 mbs bandwidth limit */
|
||||
migrate_set_parameter_int(who, "max-bandwidth", 30 * 1000 * 1000);
|
||||
/* Can't converge with 1ms downtime + 3 mbs bandwidth limit */
|
||||
migrate_set_parameter_int(who, "max-bandwidth", 3 * 1000 * 1000);
|
||||
migrate_set_parameter_int(who, "downtime-limit", 1);
|
||||
}
|
||||
|
||||
@ -1808,7 +1808,7 @@ static void test_migrate_auto_converge(void)
|
||||
* E.g., with 1Gb/s bandwith migration may pass without throttling,
|
||||
* so we need to decrease a bandwidth.
|
||||
*/
|
||||
const int64_t init_pct = 5, inc_pct = 50, max_pct = 95;
|
||||
const int64_t init_pct = 5, inc_pct = 25, max_pct = 95;
|
||||
|
||||
if (test_migrate_start(&from, &to, uri, &args)) {
|
||||
return;
|
||||
@ -1835,13 +1835,16 @@ static void test_migrate_auto_converge(void)
|
||||
|
||||
/* Wait for throttling begins */
|
||||
percentage = 0;
|
||||
while (percentage == 0) {
|
||||
do {
|
||||
percentage = read_migrate_property_int(from, "cpu-throttle-percentage");
|
||||
usleep(100);
|
||||
if (percentage != 0) {
|
||||
break;
|
||||
}
|
||||
usleep(20);
|
||||
g_assert_false(got_stop);
|
||||
}
|
||||
/* The first percentage of throttling should be equal to init_pct */
|
||||
g_assert_cmpint(percentage, ==, init_pct);
|
||||
} while (true);
|
||||
/* The first percentage of throttling should be at least init_pct */
|
||||
g_assert_cmpint(percentage, >=, init_pct);
|
||||
/* Now, when we tested that throttling works, let it converge */
|
||||
migrate_ensure_converge(from);
|
||||
|
||||
|
@ -28,6 +28,7 @@ TESTS+=div
|
||||
TESTS+=clst
|
||||
TESTS+=long-double
|
||||
TESTS+=cdsg
|
||||
TESTS+=chrl
|
||||
|
||||
cdsg: CFLAGS+=-pthread
|
||||
cdsg: LDFLAGS+=-pthread
|
||||
|
80
tests/tcg/s390x/chrl.c
Normal file
80
tests/tcg/s390x/chrl.c
Normal file
@ -0,0 +1,80 @@
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <stdint.h>
|
||||
|
||||
static void test_chrl(void)
|
||||
{
|
||||
uint32_t program_mask, cc;
|
||||
|
||||
asm volatile (
|
||||
".pushsection .rodata\n"
|
||||
"0:\n\t"
|
||||
".short 1, 0x8000\n\t"
|
||||
".popsection\n\t"
|
||||
|
||||
"chrl %[r], 0b\n\t"
|
||||
"ipm %[program_mask]\n"
|
||||
: [program_mask] "=r" (program_mask)
|
||||
: [r] "r" (1)
|
||||
);
|
||||
|
||||
cc = program_mask >> 28;
|
||||
assert(!cc);
|
||||
|
||||
asm volatile (
|
||||
".pushsection .rodata\n"
|
||||
"0:\n\t"
|
||||
".short -1, 0x8000\n\t"
|
||||
".popsection\n\t"
|
||||
|
||||
"chrl %[r], 0b\n\t"
|
||||
"ipm %[program_mask]\n"
|
||||
: [program_mask] "=r" (program_mask)
|
||||
: [r] "r" (-1)
|
||||
);
|
||||
|
||||
cc = program_mask >> 28;
|
||||
assert(!cc);
|
||||
}
|
||||
|
||||
static void test_cghrl(void)
|
||||
{
|
||||
uint32_t program_mask, cc;
|
||||
|
||||
asm volatile (
|
||||
".pushsection .rodata\n"
|
||||
"0:\n\t"
|
||||
".short 1, 0x8000, 0, 0\n\t"
|
||||
".popsection\n\t"
|
||||
|
||||
"cghrl %[r], 0b\n\t"
|
||||
"ipm %[program_mask]\n"
|
||||
: [program_mask] "=r" (program_mask)
|
||||
: [r] "r" (1L)
|
||||
);
|
||||
|
||||
cc = program_mask >> 28;
|
||||
assert(!cc);
|
||||
|
||||
asm volatile (
|
||||
".pushsection .rodata\n"
|
||||
"0:\n\t"
|
||||
".short -1, 0x8000, 0, 0\n\t"
|
||||
".popsection\n\t"
|
||||
|
||||
"cghrl %[r], 0b\n\t"
|
||||
"ipm %[program_mask]\n"
|
||||
: [program_mask] "=r" (program_mask)
|
||||
: [r] "r" (-1L)
|
||||
);
|
||||
|
||||
cc = program_mask >> 28;
|
||||
assert(!cc);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
test_chrl();
|
||||
test_cghrl();
|
||||
return EXIT_SUCCESS;
|
||||
}
|
Loading…
Reference in New Issue
Block a user