All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH  v1 0/6] testing/next queue (signal, meson, acceptance tags)
@ 2021-05-27 16:03 Alex Bennée
  2021-05-27 16:03 ` [PATCH v1 1/6] tests/tcg: add a multiarch signals test to stress test signal delivery Alex Bennée
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Alex Bennée @ 2021-05-27 16:03 UTC (permalink / raw)
  To: qemu-devel
  Cc: fam, berrange, f4bug, stefanha, crosa, pbonzini,
	Alex Bennée, aurelien

Hi,

This is the current state of my testing queue. I don't think there is
any pressing hurry to get this merged.

I should note I'll probably need to drop the signals test in any PR as
it's still causing some intermittent failures on various system.

The tweaks to acceptance tests need the additional support from
Phillipe's series:

  https://patchew.org/QEMU/20210526170432.343588-1-philmd@redhat.com/

They following still need review:

 - tests/acceptance: tag various arm tests as TCG only
 - tests/acceptance: tweak the tcg/kvm tests for virt
 - tests/tcg/configure.sh: tweak quoting of target_compiler
 - meson.build: fix cosmetics of compiler display
 - tests/tcg: add a multiarch signals test to stress test signal delivery

Alex Bennée (5):
  tests/tcg: add a multiarch signals test to stress test signal delivery
  meson.build: fix cosmetics of compiler display
  tests/tcg/configure.sh: tweak quoting of target_compiler
  tests/acceptance: tweak the tcg/kvm tests for virt
  tests/acceptance: tag various arm tests as TCG only

Philippe Mathieu-Daudé (1):
  gitlab-ci: Convert check-dco/check-patch jobs to the 'rules' syntax

 meson.build                            |   8 +-
 tests/tcg/multiarch/signals.c          | 149 +++++++++++++++++++++++++
 .gitlab-ci.yml                         |  16 +--
 tests/acceptance/boot_linux.py         |  24 ++--
 tests/acceptance/boot_linux_console.py |  18 +++
 tests/tcg/configure.sh                 |   6 +-
 tests/tcg/multiarch/Makefile.target    |   2 +
 7 files changed, 197 insertions(+), 26 deletions(-)
 create mode 100644 tests/tcg/multiarch/signals.c

-- 
2.20.1



^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v1 1/6] tests/tcg: add a multiarch signals test to stress test signal delivery
  2021-05-27 16:03 [PATCH v1 0/6] testing/next queue (signal, meson, acceptance tags) Alex Bennée
@ 2021-05-27 16:03 ` Alex Bennée
  2021-05-27 17:37   ` Richard Henderson
  2021-05-27 16:03 ` [PATCH v1 2/6] meson.build: fix cosmetics of compiler display Alex Bennée
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 15+ messages in thread
From: Alex Bennée @ 2021-05-27 16:03 UTC (permalink / raw)
  To: qemu-devel
  Cc: fam, berrange, f4bug, stefanha, crosa, pbonzini,
	Alex Bennée, aurelien

This adds a simple signal test that combines the POSIX timer_create
with signal delivery across multiple threads. The aim is to provide a
bit more of a stress test to flush out signal handling issues for
easily than the occasional random crash we sometimes see in linux-test
or threadcount.

[AJB: this is still triggering intermittent failures in some guests so
will probably be kept out of PRs until that is fixed.]

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210504100223.25427-29-alex.bennee@linaro.org>
---
 tests/tcg/multiarch/signals.c       | 149 ++++++++++++++++++++++++++++
 tests/tcg/multiarch/Makefile.target |   2 +
 2 files changed, 151 insertions(+)
 create mode 100644 tests/tcg/multiarch/signals.c

diff --git a/tests/tcg/multiarch/signals.c b/tests/tcg/multiarch/signals.c
new file mode 100644
index 0000000000..998c8fdefd
--- /dev/null
+++ b/tests/tcg/multiarch/signals.c
@@ -0,0 +1,149 @@
+/*
+ * linux-user signal handling tests.
+ *
+ * Copyright (c) 2021 Linaro Ltd
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
+#include <pthread.h>
+#include <string.h>
+#include <signal.h>
+#include <time.h>
+#include <sys/time.h>
+
+static void error1(const char *filename, int line, const char *fmt, ...)
+{
+    va_list ap;
+    va_start(ap, fmt);
+    fprintf(stderr, "%s:%d: ", filename, line);
+    vfprintf(stderr, fmt, ap);
+    fprintf(stderr, "\n");
+    va_end(ap);
+    exit(1);
+}
+
+static int __chk_error(const char *filename, int line, int ret)
+{
+    if (ret < 0) {
+        error1(filename, line, "%m (ret=%d, errno=%d/%s)",
+               ret, errno, strerror(errno));
+    }
+    return ret;
+}
+
+#define error(fmt, ...) error1(__FILE__, __LINE__, fmt, ## __VA_ARGS__)
+
+#define chk_error(ret) __chk_error(__FILE__, __LINE__, (ret))
+
+/*
+ * Thread handling
+ */
+typedef struct ThreadJob ThreadJob;
+
+struct ThreadJob {
+    int number;
+    int sleep;
+    int count;
+};
+
+static pthread_t *threads;
+static int max_threads = 10;
+__thread int signal_count;
+int total_signal_count;
+
+static void *background_thread_func(void *arg)
+{
+    ThreadJob *job = (ThreadJob *) arg;
+
+    printf("thread%d: started\n", job->number);
+    while (total_signal_count < job->count) {
+        usleep(job->sleep);
+    }
+    printf("thread%d: saw %d alarms from %d\n", job->number,
+           signal_count, total_signal_count);
+    return NULL;
+}
+
+static void spawn_threads(void)
+{
+    int i;
+    threads = calloc(sizeof(pthread_t), max_threads);
+
+    for (i = 0; i < max_threads; i++) {
+        ThreadJob *job = calloc(sizeof(ThreadJob), 1);
+        job->number = i;
+        job->sleep = i * 1000;
+        job->count = i * 100;
+        pthread_create(threads + i, NULL, background_thread_func, job);
+    }
+}
+
+static void close_threads(void)
+{
+    int i;
+    for (i = 0; i < max_threads; i++) {
+        pthread_join(threads[i], NULL);
+    }
+    free(threads);
+    threads = NULL;
+}
+
+static void sig_alarm(int sig, siginfo_t *info, void *puc)
+{
+    if (sig != SIGRTMIN) {
+        error("unexpected signal");
+    }
+    signal_count++;
+    __atomic_fetch_add(&total_signal_count, 1, __ATOMIC_SEQ_CST);
+}
+
+static void test_signals(void)
+{
+    struct sigaction act;
+    struct itimerspec it;
+    timer_t tid;
+    struct sigevent sev;
+
+    /* Set up SIG handler */
+    act.sa_sigaction = sig_alarm;
+    sigemptyset(&act.sa_mask);
+    act.sa_flags = SA_SIGINFO;
+    chk_error(sigaction(SIGRTMIN, &act, NULL));
+
+    /* Create POSIX timer */
+    sev.sigev_notify = SIGEV_SIGNAL;
+    sev.sigev_signo = SIGRTMIN;
+    sev.sigev_value.sival_ptr = &tid;
+    chk_error(timer_create(CLOCK_REALTIME, &sev, &tid));
+
+    it.it_interval.tv_sec = 0;
+    it.it_interval.tv_nsec = 1000000;
+    it.it_value.tv_sec = 0;
+    it.it_value.tv_nsec = 1000000;
+    chk_error(timer_settime(tid, 0, &it, NULL));
+
+    spawn_threads();
+
+    do {
+        usleep(1000);
+    } while (total_signal_count < 2000);
+
+    printf("shutting down after: %d signals\n", total_signal_count);
+
+    close_threads();
+
+    chk_error(timer_delete(tid));
+}
+
+int main(int argc, char **argv)
+{
+    test_signals();
+    return 0;
+}
diff --git a/tests/tcg/multiarch/Makefile.target b/tests/tcg/multiarch/Makefile.target
index a3a751723d..3f283eabe6 100644
--- a/tests/tcg/multiarch/Makefile.target
+++ b/tests/tcg/multiarch/Makefile.target
@@ -30,6 +30,8 @@ testthread: LDFLAGS+=-lpthread
 
 threadcount: LDFLAGS+=-lpthread
 
+signals: LDFLAGS+=-lrt -lpthread
+
 # We define the runner for test-mmap after the individual
 # architectures have defined their supported pages sizes. If no
 # additional page sizes are defined we only run the default test.
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH  v1 2/6] meson.build: fix cosmetics of compiler display
  2021-05-27 16:03 [PATCH v1 0/6] testing/next queue (signal, meson, acceptance tags) Alex Bennée
  2021-05-27 16:03 ` [PATCH v1 1/6] tests/tcg: add a multiarch signals test to stress test signal delivery Alex Bennée
@ 2021-05-27 16:03 ` Alex Bennée
  2021-05-27 17:38   ` Richard Henderson
  2021-05-28 11:05   ` Philippe Mathieu-Daudé
  2021-05-27 16:03 ` [PATCH v1 3/6] tests/tcg/configure.sh: tweak quoting of target_compiler Alex Bennée
                   ` (3 subsequent siblings)
  5 siblings, 2 replies; 15+ messages in thread
From: Alex Bennée @ 2021-05-27 16:03 UTC (permalink / raw)
  To: qemu-devel
  Cc: fam, Thomas Huth, berrange, f4bug, stefanha, crosa, pbonzini,
	Alex Bennée, aurelien

If you specify something like --cc="ccache gcc" on your configure line
the summary output misses the rest of the cmd_array. Do some string
joining to make it complete.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Thomas Huth <thuth@redhat.com>
---
 meson.build | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/meson.build b/meson.build
index 20d7035e44..3f065f53f2 100644
--- a/meson.build
+++ b/meson.build
@@ -2515,15 +2515,15 @@ summary(summary_info, bool_yn: true, section: 'Configurable features')
 summary_info = {}
 summary_info += {'host CPU':          cpu}
 summary_info += {'host endianness':   build_machine.endian()}
-summary_info += {'C compiler':        meson.get_compiler('c').cmd_array()[0]}
-summary_info += {'Host C compiler':   meson.get_compiler('c', native: true).cmd_array()[0]}
+summary_info += {'C compiler':        ' '.join(meson.get_compiler('c').cmd_array())}
+summary_info += {'Host C compiler':   ' '.join(meson.get_compiler('c', native: true).cmd_array())}
 if link_language == 'cpp'
-  summary_info += {'C++ compiler':      meson.get_compiler('cpp').cmd_array()[0]}
+  summary_info += {'C++ compiler':    ' '.join(meson.get_compiler('cpp').cmd_array())}
 else
   summary_info += {'C++ compiler':      false}
 endif
 if targetos == 'darwin'
-  summary_info += {'Objective-C compiler': meson.get_compiler('objc').cmd_array()[0]}
+  summary_info += {'Objective-C compiler': ' '.join(meson.get_compiler('objc').cmd_array())}
 endif
 if targetos == 'windows'
   if 'WIN_SDK' in config_host
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v1 3/6] tests/tcg/configure.sh: tweak quoting of target_compiler
  2021-05-27 16:03 [PATCH v1 0/6] testing/next queue (signal, meson, acceptance tags) Alex Bennée
  2021-05-27 16:03 ` [PATCH v1 1/6] tests/tcg: add a multiarch signals test to stress test signal delivery Alex Bennée
  2021-05-27 16:03 ` [PATCH v1 2/6] meson.build: fix cosmetics of compiler display Alex Bennée
@ 2021-05-27 16:03 ` Alex Bennée
  2021-05-28  4:39   ` Thomas Huth
  2021-05-27 16:03 ` [PATCH v1 4/6] gitlab-ci: Convert check-dco/check-patch jobs to the 'rules' syntax Alex Bennée
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 15+ messages in thread
From: Alex Bennée @ 2021-05-27 16:03 UTC (permalink / raw)
  To: qemu-devel
  Cc: fam, Thomas Huth, berrange, f4bug, stefanha, crosa, pbonzini,
	Alex Bennée, aurelien

If you configure the host compiler with a multi-command stanza like:

  --cc="ccache gcc"

then the configure.sh machinery falls over with confusion. Work around
this by ensuring we correctly quote so where we need a complete
evaluation we get it. Of course the has() check needs single variable
so we need to unquote that. This does mean it essentially checks that
just the ccache command exits but if we got past that step we still
check the compiler actually does something.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Thomas Huth <thuth@redhat.com>
---
 tests/tcg/configure.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
index ed6492ce59..aa7c24328a 100755
--- a/tests/tcg/configure.sh
+++ b/tests/tcg/configure.sh
@@ -222,10 +222,10 @@ for target in $target_list; do
 
   got_cross_cc=no
 
-  if eval test "x\${cross_cc_$arch}" != xyes; then
-      eval "target_compiler=\${cross_cc_$arch}"
+  if eval test "x\"\${cross_cc_$arch}\"" != xyes; then
+      eval "target_compiler=\"\${cross_cc_$arch}\""
 
-      if has "$target_compiler"; then
+      if has $target_compiler; then
           if test "$supress_clang" = yes &&
                   $target_compiler --version | grep -qi "clang"; then
               got_cross_cc=no
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v1 4/6] gitlab-ci: Convert check-dco/check-patch jobs to the 'rules' syntax
  2021-05-27 16:03 [PATCH v1 0/6] testing/next queue (signal, meson, acceptance tags) Alex Bennée
                   ` (2 preceding siblings ...)
  2021-05-27 16:03 ` [PATCH v1 3/6] tests/tcg/configure.sh: tweak quoting of target_compiler Alex Bennée
@ 2021-05-27 16:03 ` Alex Bennée
  2021-05-27 16:03 ` [PATCH v1 5/6] tests/acceptance: tweak the tcg/kvm tests for virt Alex Bennée
  2021-05-27 16:03 ` [PATCH v1 6/6] tests/acceptance: tag various arm tests as TCG only Alex Bennée
  5 siblings, 0 replies; 15+ messages in thread
From: Alex Bennée @ 2021-05-27 16:03 UTC (permalink / raw)
  To: qemu-devel
  Cc: fam, Thomas Huth, berrange, f4bug, Wainer dos Santos Moschetta,
	Willian Rampazzo, stefanha, crosa, pbonzini, Alex Bennée,
	aurelien

From: Philippe Mathieu-Daudé <f4bug@amsat.org>

Per GitLab documentation [*]:

  "rules replaces only/except and they can’t be used together
   in the same job."

Since the 'rules' syntax is more powerful and we are already using
it, convert the check-dco/check-patch jobs so no job use the 'only/
except' syntax.

[*] https://docs.gitlab.com/ee/ci/yaml/#rules

Inspired-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Message-Id: <20210525132418.4133235-3-f4bug@amsat.org>
---
 .gitlab-ci.yml | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1c46392b2f..797403477f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -785,12 +785,13 @@ check-patch:
   needs:
     job: amd64-centos8-container
   script: .gitlab-ci.d/check-patch.py
-  except:
-    variables:
-      - $CI_PROJECT_NAMESPACE == 'qemu-project' && $CI_COMMIT_BRANCH == 'master'
   variables:
     GIT_DEPTH: 1000
-  allow_failure: true
+  rules:
+    - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH == "master"'
+      when: never
+    - when: on_success
+      allow_failure: true
 
 check-dco:
   stage: build
@@ -798,11 +799,12 @@ check-dco:
   needs:
     job: amd64-centos8-container
   script: .gitlab-ci.d/check-dco.py
-  except:
-    variables:
-      - $CI_PROJECT_NAMESPACE == 'qemu-project' && $CI_COMMIT_BRANCH == 'master'
   variables:
     GIT_DEPTH: 1000
+  rules:
+    - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH == "master"'
+      when: never
+    - when: on_success
 
 build-libvhost-user:
   stage: build
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH  v1 5/6] tests/acceptance: tweak the tcg/kvm tests for virt
  2021-05-27 16:03 [PATCH v1 0/6] testing/next queue (signal, meson, acceptance tags) Alex Bennée
                   ` (3 preceding siblings ...)
  2021-05-27 16:03 ` [PATCH v1 4/6] gitlab-ci: Convert check-dco/check-patch jobs to the 'rules' syntax Alex Bennée
@ 2021-05-27 16:03 ` Alex Bennée
  2021-05-27 17:40   ` Richard Henderson
  2021-05-27 19:08   ` Willian Rampazzo
  2021-05-27 16:03 ` [PATCH v1 6/6] tests/acceptance: tag various arm tests as TCG only Alex Bennée
  5 siblings, 2 replies; 15+ messages in thread
From: Alex Bennée @ 2021-05-27 16:03 UTC (permalink / raw)
  To: qemu-devel
  Cc: fam, berrange, Philippe Mathieu-Daudé,
	f4bug, Wainer dos Santos Moschetta, stefanha, crosa, pbonzini,
	Alex Bennée, aurelien

Really it's only TCG that can select which GIC model you want, KVM
guests should always be using the "host" version of the GIC for which
QEMU already provides a handy shortcut. Make the KVM test use this and
split the TCG test into it's two versions.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/acceptance/boot_linux.py | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/tests/acceptance/boot_linux.py b/tests/acceptance/boot_linux.py
index 0d178038a0..7221452d4b 100644
--- a/tests/acceptance/boot_linux.py
+++ b/tests/acceptance/boot_linux.py
@@ -75,10 +75,11 @@ def add_common_args(self):
         self.vm.add_args('-device', 'virtio-rng-pci,rng=rng0')
         self.vm.add_args('-object', 'rng-random,id=rng0,filename=/dev/urandom')
 
-    def test_virt_tcg(self):
+    def test_virt_tcg_gicv2(self):
         """
         :avocado: tags=accel:tcg
         :avocado: tags=cpu:max
+        :avocado: tags=device:gicv2
         """
         self.require_accelerator("tcg")
         self.vm.add_args("-accel", "tcg")
@@ -87,29 +88,28 @@ def test_virt_tcg(self):
         self.add_common_args()
         self.launch_and_wait()
 
-    def test_virt_kvm_gicv2(self):
+    def test_virt_tcg_gicv3(self):
         """
-        :avocado: tags=accel:kvm
-        :avocado: tags=cpu:host
-        :avocado: tags=device:gicv2
+        :avocado: tags=accel:tcg
+        :avocado: tags=cpu:max
+        :avocado: tags=device:gicv3
         """
-        self.require_accelerator("kvm")
-        self.vm.add_args("-accel", "kvm")
-        self.vm.add_args("-cpu", "host")
-        self.vm.add_args("-machine", "virt,gic-version=2")
+        self.require_accelerator("tcg")
+        self.vm.add_args("-accel", "tcg")
+        self.vm.add_args("-cpu", "max")
+        self.vm.add_args("-machine", "virt,gic-version=3")
         self.add_common_args()
         self.launch_and_wait()
 
-    def test_virt_kvm_gicv3(self):
+    def test_virt_kvm(self):
         """
         :avocado: tags=accel:kvm
         :avocado: tags=cpu:host
-        :avocado: tags=device:gicv3
         """
         self.require_accelerator("kvm")
         self.vm.add_args("-accel", "kvm")
         self.vm.add_args("-cpu", "host")
-        self.vm.add_args("-machine", "virt,gic-version=3")
+        self.vm.add_args("-machine", "virt,gic-version=host")
         self.add_common_args()
         self.launch_and_wait()
 
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH  v1 6/6] tests/acceptance: tag various arm tests as TCG only
  2021-05-27 16:03 [PATCH v1 0/6] testing/next queue (signal, meson, acceptance tags) Alex Bennée
                   ` (4 preceding siblings ...)
  2021-05-27 16:03 ` [PATCH v1 5/6] tests/acceptance: tweak the tcg/kvm tests for virt Alex Bennée
@ 2021-05-27 16:03 ` Alex Bennée
  2021-05-27 17:49   ` Richard Henderson
  2021-05-27 19:09   ` Willian Rampazzo
  5 siblings, 2 replies; 15+ messages in thread
From: Alex Bennée @ 2021-05-27 16:03 UTC (permalink / raw)
  To: qemu-devel
  Cc: fam, berrange, Philippe Mathieu-Daudé,
	f4bug, Wainer dos Santos Moschetta, stefanha, crosa, pbonzini,
	Alex Bennée, aurelien

We should never be trying to run most of these models under a KVM
environment.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/acceptance/boot_linux_console.py | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
index 276a53f146..cded547d1d 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -333,6 +333,7 @@ def test_aarch64_virt(self):
         """
         :avocado: tags=arch:aarch64
         :avocado: tags=machine:virt
+        :avocado: tags=accel:tcg
         """
         kernel_url = ('https://archives.fedoraproject.org/pub/archive/fedora'
                       '/linux/releases/29/Everything/aarch64/os/images/pxeboot'
@@ -343,7 +344,9 @@ def test_aarch64_virt(self):
         self.vm.set_console()
         kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
                                'console=ttyAMA0')
+        self.require_accelerator("tcg")
         self.vm.add_args('-cpu', 'cortex-a53',
+                         '-accel', 'tcg',
                          '-kernel', kernel_path,
                          '-append', kernel_command_line)
         self.vm.launch()
@@ -356,6 +359,7 @@ def test_aarch64_xlnx_versal_virt(self):
         :avocado: tags=machine:xlnx-versal-virt
         :avocado: tags=device:pl011
         :avocado: tags=device:arm_gicv3
+        :avocado: tags=accel:tcg
         """
         images_url = ('http://ports.ubuntu.com/ubuntu-ports/dists/'
                       'bionic-updates/main/installer-arm64/'
@@ -370,6 +374,7 @@ def test_aarch64_xlnx_versal_virt(self):
 
         self.vm.set_console()
         self.vm.add_args('-m', '2G',
+                         '-accel', 'tcg',
                          '-kernel', kernel_path,
                          '-initrd', initrd_path)
         self.vm.launch()
@@ -379,6 +384,7 @@ def test_arm_virt(self):
         """
         :avocado: tags=arch:arm
         :avocado: tags=machine:virt
+        :avocado: tags=accel:tcg
         """
         kernel_url = ('https://archives.fedoraproject.org/pub/archive/fedora'
                       '/linux/releases/29/Everything/armhfp/os/images/pxeboot'
@@ -401,6 +407,7 @@ def test_arm_emcraft_sf2(self):
         :avocado: tags=machine:emcraft-sf2
         :avocado: tags=endian:little
         :avocado: tags=u-boot
+        :avocado: tags=accel:tcg
         """
         uboot_url = ('https://raw.githubusercontent.com/'
                      'Subbaraya-Sundeep/qemu-test-binaries/'
@@ -429,6 +436,8 @@ def test_arm_emcraft_sf2(self):
 
     def do_test_arm_raspi2(self, uart_id):
         """
+        :avocado: tags=accel:tcg
+
         The kernel can be rebuilt using the kernel source referenced
         and following the instructions on the on:
         https://www.raspberrypi.org/documentation/linux/kernel/building.md
@@ -464,6 +473,7 @@ def test_arm_raspi2_uart0(self):
         :avocado: tags=arch:arm
         :avocado: tags=machine:raspi2
         :avocado: tags=device:pl011
+        :avocado: tags=accel:tcg
         """
         self.do_test_arm_raspi2(0)
 
@@ -471,6 +481,7 @@ def test_arm_exynos4210_initrd(self):
         """
         :avocado: tags=arch:arm
         :avocado: tags=machine:smdkc210
+        :avocado: tags=accel:tcg
         """
         deb_url = ('https://snapshot.debian.org/archive/debian/'
                    '20190928T224601Z/pool/main/l/linux/'
@@ -511,6 +522,7 @@ def test_arm_cubieboard_initrd(self):
         """
         :avocado: tags=arch:arm
         :avocado: tags=machine:cubieboard
+        :avocado: tags=accel:tcg
         """
         deb_url = ('https://apt.armbian.com/pool/main/l/'
                    'linux-5.10.16-sunxi/linux-image-current-sunxi_21.02.2_armhf.deb')
@@ -551,6 +563,7 @@ def test_arm_cubieboard_sata(self):
         """
         :avocado: tags=arch:arm
         :avocado: tags=machine:cubieboard
+        :avocado: tags=accel:tcg
         """
         deb_url = ('https://apt.armbian.com/pool/main/l/'
                    'linux-5.10.16-sunxi/linux-image-current-sunxi_21.02.2_armhf.deb')
@@ -595,6 +608,7 @@ def test_arm_quanta_gsj(self):
         """
         :avocado: tags=arch:arm
         :avocado: tags=machine:quanta-gsj
+        :avocado: tags=accel:tcg
         """
         # 25 MiB compressed, 32 MiB uncompressed.
         image_url = (
@@ -642,6 +656,7 @@ def test_arm_quanta_gsj_initrd(self):
         """
         :avocado: tags=arch:arm
         :avocado: tags=machine:quanta-gsj
+        :avocado: tags=accel:tcg
         """
         initrd_url = (
                 'https://github.com/hskinnemoen/openbmc/releases/download/'
@@ -678,6 +693,7 @@ def test_arm_orangepi(self):
         """
         :avocado: tags=arch:arm
         :avocado: tags=machine:orangepi-pc
+        :avocado: tags=accel:tcg
         """
         deb_url = ('https://apt.armbian.com/pool/main/l/'
                    'linux-5.10.16-sunxi/linux-image-current-sunxi_21.02.2_armhf.deb')
@@ -702,6 +718,7 @@ def test_arm_orangepi(self):
     def test_arm_orangepi_initrd(self):
         """
         :avocado: tags=arch:arm
+        :avocado: tags=accel:tcg
         :avocado: tags=machine:orangepi-pc
         """
         deb_url = ('https://apt.armbian.com/pool/main/l/'
@@ -744,6 +761,7 @@ def test_arm_orangepi_initrd(self):
     def test_arm_orangepi_sd(self):
         """
         :avocado: tags=arch:arm
+        :avocado: tags=accel:tcg
         :avocado: tags=machine:orangepi-pc
         :avocado: tags=device:sd
         """
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH v1 1/6] tests/tcg: add a multiarch signals test to stress test signal delivery
  2021-05-27 16:03 ` [PATCH v1 1/6] tests/tcg: add a multiarch signals test to stress test signal delivery Alex Bennée
@ 2021-05-27 17:37   ` Richard Henderson
  0 siblings, 0 replies; 15+ messages in thread
From: Richard Henderson @ 2021-05-27 17:37 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel
  Cc: fam, berrange, f4bug, stefanha, crosa, pbonzini, aurelien

On 5/27/21 9:03 AM, Alex Bennée wrote:
> This adds a simple signal test that combines the POSIX timer_create
> with signal delivery across multiple threads. The aim is to provide a
> bit more of a stress test to flush out signal handling issues for
> easily than the occasional random crash we sometimes see in linux-test
> or threadcount.
> 
> [AJB: this is still triggering intermittent failures in some guests so
> will probably be kept out of PRs until that is fixed.]
> 
> Signed-off-by: Alex Bennée<alex.bennee@linaro.org>
> Message-Id:<20210504100223.25427-29-alex.bennee@linaro.org>
> ---
>   tests/tcg/multiarch/signals.c       | 149 ++++++++++++++++++++++++++++
>   tests/tcg/multiarch/Makefile.target |   2 +
>   2 files changed, 151 insertions(+)
>   create mode 100644 tests/tcg/multiarch/signals.c

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

This has flushed out quite a few bugs.  We could do more, but this is good 
without treading into target-specific territory.


r~


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v1 2/6] meson.build: fix cosmetics of compiler display
  2021-05-27 16:03 ` [PATCH v1 2/6] meson.build: fix cosmetics of compiler display Alex Bennée
@ 2021-05-27 17:38   ` Richard Henderson
  2021-05-28 11:05   ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 15+ messages in thread
From: Richard Henderson @ 2021-05-27 17:38 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel
  Cc: fam, Thomas Huth, berrange, f4bug, stefanha, crosa, pbonzini, aurelien

On 5/27/21 9:03 AM, Alex Bennée wrote:
> If you specify something like --cc="ccache gcc" on your configure line
> the summary output misses the rest of the cmd_array. Do some string
> joining to make it complete.
> 
> Signed-off-by: Alex Bennée<alex.bennee@linaro.org>
> Tested-by: Thomas Huth<thuth@redhat.com>
> ---
>   meson.build | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v1 5/6] tests/acceptance: tweak the tcg/kvm tests for virt
  2021-05-27 16:03 ` [PATCH v1 5/6] tests/acceptance: tweak the tcg/kvm tests for virt Alex Bennée
@ 2021-05-27 17:40   ` Richard Henderson
  2021-05-27 19:08   ` Willian Rampazzo
  1 sibling, 0 replies; 15+ messages in thread
From: Richard Henderson @ 2021-05-27 17:40 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel
  Cc: fam, berrange, f4bug, Wainer dos Santos Moschetta, stefanha,
	crosa, pbonzini, Philippe Mathieu-Daudé,
	aurelien

On 5/27/21 9:03 AM, Alex Bennée wrote:
> Really it's only TCG that can select which GIC model you want, KVM
> guests should always be using the "host" version of the GIC for which
> QEMU already provides a handy shortcut. Make the KVM test use this and
> split the TCG test into it's two versions.
> 
> Signed-off-by: Alex Bennée<alex.bennee@linaro.org>
> ---
>   tests/acceptance/boot_linux.py | 24 ++++++++++++------------
>   1 file changed, 12 insertions(+), 12 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v1 6/6] tests/acceptance: tag various arm tests as TCG only
  2021-05-27 16:03 ` [PATCH v1 6/6] tests/acceptance: tag various arm tests as TCG only Alex Bennée
@ 2021-05-27 17:49   ` Richard Henderson
  2021-05-27 19:09   ` Willian Rampazzo
  1 sibling, 0 replies; 15+ messages in thread
From: Richard Henderson @ 2021-05-27 17:49 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel
  Cc: fam, berrange, f4bug, Wainer dos Santos Moschetta, stefanha,
	crosa, pbonzini, Philippe Mathieu-Daudé,
	aurelien

On 5/27/21 9:03 AM, Alex Bennée wrote:
> We should never be trying to run most of these models under a KVM
> environment.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>   tests/acceptance/boot_linux_console.py | 18 ++++++++++++++++++
>   1 file changed, 18 insertions(+)
> 
> diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
> index 276a53f146..cded547d1d 100644
> --- a/tests/acceptance/boot_linux_console.py
> +++ b/tests/acceptance/boot_linux_console.py
> @@ -333,6 +333,7 @@ def test_aarch64_virt(self):
>           """
>           :avocado: tags=arch:aarch64
>           :avocado: tags=machine:virt
> +        :avocado: tags=accel:tcg
>           """
>           kernel_url = ('https://archives.fedoraproject.org/pub/archive/fedora'
>                         '/linux/releases/29/Everything/aarch64/os/images/pxeboot'

This one should work with kvm if we change the -cpu line, yes?
Do we have any other boot_linux_console testing for kvm otherwise?

> @@ -379,6 +384,7 @@ def test_arm_virt(self):
>           """
>           :avocado: tags=arch:arm
>           :avocado: tags=machine:virt
> +        :avocado: tags=accel:tcg
>           """
>           kernel_url = ('https://archives.fedoraproject.org/pub/archive/fedora'
>                         '/linux/releases/29/Everything/armhfp/os/images/pxeboot'

Ack, because for kvm we'd have to know if the host supports 32-bit mode at all. 
  So, no for the thunderx2 that aarch64.ci.qemu.org has, but yes for the 
cortex-a57 in my mustang.

It'd be nice to be able to detect this somehow...

Ack to all the rest as obvious arm embedded/pi stuff.


r~


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v1 5/6] tests/acceptance: tweak the tcg/kvm tests for virt
  2021-05-27 16:03 ` [PATCH v1 5/6] tests/acceptance: tweak the tcg/kvm tests for virt Alex Bennée
  2021-05-27 17:40   ` Richard Henderson
@ 2021-05-27 19:08   ` Willian Rampazzo
  1 sibling, 0 replies; 15+ messages in thread
From: Willian Rampazzo @ 2021-05-27 19:08 UTC (permalink / raw)
  To: Alex Bennée
  Cc: Fam Zheng, Daniel Berrange, qemu-devel,
	Wainer dos Santos Moschetta, Philippe Mathieu-Daudé,
	Stefan Hajnoczi, Cleber Rosa Junior, Paolo Bonzini,
	Philippe Mathieu-Daudé,
	Aurelien Jarno

On Thu, May 27, 2021 at 1:11 PM Alex Bennée <alex.bennee@linaro.org> wrote:
>
> Really it's only TCG that can select which GIC model you want, KVM
> guests should always be using the "host" version of the GIC for which
> QEMU already provides a handy shortcut. Make the KVM test use this and
> split the TCG test into it's two versions.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  tests/acceptance/boot_linux.py | 24 ++++++++++++------------
>  1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/tests/acceptance/boot_linux.py b/tests/acceptance/boot_linux.py
> index 0d178038a0..7221452d4b 100644
> --- a/tests/acceptance/boot_linux.py
> +++ b/tests/acceptance/boot_linux.py
> @@ -75,10 +75,11 @@ def add_common_args(self):
>          self.vm.add_args('-device', 'virtio-rng-pci,rng=rng0')
>          self.vm.add_args('-object', 'rng-random,id=rng0,filename=/dev/urandom')
>
> -    def test_virt_tcg(self):
> +    def test_virt_tcg_gicv2(self):
>          """
>          :avocado: tags=accel:tcg
>          :avocado: tags=cpu:max
> +        :avocado: tags=device:gicv2
>          """
>          self.require_accelerator("tcg")
>          self.vm.add_args("-accel", "tcg")
> @@ -87,29 +88,28 @@ def test_virt_tcg(self):
>          self.add_common_args()
>          self.launch_and_wait()
>
> -    def test_virt_kvm_gicv2(self):
> +    def test_virt_tcg_gicv3(self):
>          """
> -        :avocado: tags=accel:kvm
> -        :avocado: tags=cpu:host
> -        :avocado: tags=device:gicv2
> +        :avocado: tags=accel:tcg
> +        :avocado: tags=cpu:max
> +        :avocado: tags=device:gicv3
>          """
> -        self.require_accelerator("kvm")
> -        self.vm.add_args("-accel", "kvm")
> -        self.vm.add_args("-cpu", "host")
> -        self.vm.add_args("-machine", "virt,gic-version=2")
> +        self.require_accelerator("tcg")
> +        self.vm.add_args("-accel", "tcg")
> +        self.vm.add_args("-cpu", "max")
> +        self.vm.add_args("-machine", "virt,gic-version=3")
>          self.add_common_args()
>          self.launch_and_wait()
>

This test is timing out for me. Maybe we should add a skip just like
on build/tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_quanta_gsj,
@skipUnless(os.getenv('AVOCADO_TIMEOUT_EXPECTED'), 'Test might
timeout')?

> -    def test_virt_kvm_gicv3(self):
> +    def test_virt_kvm(self):
>          """
>          :avocado: tags=accel:kvm
>          :avocado: tags=cpu:host
> -        :avocado: tags=device:gicv3
>          """
>          self.require_accelerator("kvm")
>          self.vm.add_args("-accel", "kvm")
>          self.vm.add_args("-cpu", "host")
> -        self.vm.add_args("-machine", "virt,gic-version=3")
> +        self.vm.add_args("-machine", "virt,gic-version=host")
>          self.add_common_args()
>          self.launch_and_wait()
>
> --
> 2.20.1
>
>

Tested-by: Willian Rampazzo <willianr@redhat.com>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v1 6/6] tests/acceptance: tag various arm tests as TCG only
  2021-05-27 16:03 ` [PATCH v1 6/6] tests/acceptance: tag various arm tests as TCG only Alex Bennée
  2021-05-27 17:49   ` Richard Henderson
@ 2021-05-27 19:09   ` Willian Rampazzo
  1 sibling, 0 replies; 15+ messages in thread
From: Willian Rampazzo @ 2021-05-27 19:09 UTC (permalink / raw)
  To: Alex Bennée
  Cc: Fam Zheng, Daniel Berrange, qemu-devel,
	Wainer dos Santos Moschetta, Philippe Mathieu-Daudé,
	Stefan Hajnoczi, Cleber Rosa Junior, Paolo Bonzini,
	Philippe Mathieu-Daudé,
	Aurelien Jarno

On Thu, May 27, 2021 at 1:12 PM Alex Bennée <alex.bennee@linaro.org> wrote:
>
> We should never be trying to run most of these models under a KVM
> environment.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  tests/acceptance/boot_linux_console.py | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
>

Tested-by: Willian Rampazzo <willianr@redhat.com>



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v1 3/6] tests/tcg/configure.sh: tweak quoting of target_compiler
  2021-05-27 16:03 ` [PATCH v1 3/6] tests/tcg/configure.sh: tweak quoting of target_compiler Alex Bennée
@ 2021-05-28  4:39   ` Thomas Huth
  0 siblings, 0 replies; 15+ messages in thread
From: Thomas Huth @ 2021-05-28  4:39 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel
  Cc: fam, berrange, f4bug, stefanha, crosa, pbonzini, aurelien

On 27/05/2021 18.03, Alex Bennée wrote:
> If you configure the host compiler with a multi-command stanza like:
> 
>    --cc="ccache gcc"
> 
> then the configure.sh machinery falls over with confusion. Work around
> this by ensuring we correctly quote so where we need a complete
> evaluation we get it. Of course the has() check needs single variable
> so we need to unquote that. This does mean it essentially checks that
> just the ccache command exits but if we got past that step we still
> check the compiler actually does something.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Cc: Thomas Huth <thuth@redhat.com>
> ---
>   tests/tcg/configure.sh | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
> index ed6492ce59..aa7c24328a 100755
> --- a/tests/tcg/configure.sh
> +++ b/tests/tcg/configure.sh
> @@ -222,10 +222,10 @@ for target in $target_list; do
>   
>     got_cross_cc=no
>   
> -  if eval test "x\${cross_cc_$arch}" != xyes; then
> -      eval "target_compiler=\${cross_cc_$arch}"
> +  if eval test "x\"\${cross_cc_$arch}\"" != xyes; then
> +      eval "target_compiler=\"\${cross_cc_$arch}\""
>   
> -      if has "$target_compiler"; then
> +      if has $target_compiler; then
>             if test "$supress_clang" = yes &&
>                     $target_compiler --version | grep -qi "clang"; then
>                 got_cross_cc=no
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v1 2/6] meson.build: fix cosmetics of compiler display
  2021-05-27 16:03 ` [PATCH v1 2/6] meson.build: fix cosmetics of compiler display Alex Bennée
  2021-05-27 17:38   ` Richard Henderson
@ 2021-05-28 11:05   ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 15+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-05-28 11:05 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel
  Cc: fam, Thomas Huth, berrange, stefanha, crosa, pbonzini, aurelien

On 5/27/21 6:03 PM, Alex Bennée wrote:
> If you specify something like --cc="ccache gcc" on your configure line
> the summary output misses the rest of the cmd_array. Do some string
> joining to make it complete.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Tested-by: Thomas Huth <thuth@redhat.com>
> ---
>  meson.build | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>



^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2021-05-28 11:06 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-27 16:03 [PATCH v1 0/6] testing/next queue (signal, meson, acceptance tags) Alex Bennée
2021-05-27 16:03 ` [PATCH v1 1/6] tests/tcg: add a multiarch signals test to stress test signal delivery Alex Bennée
2021-05-27 17:37   ` Richard Henderson
2021-05-27 16:03 ` [PATCH v1 2/6] meson.build: fix cosmetics of compiler display Alex Bennée
2021-05-27 17:38   ` Richard Henderson
2021-05-28 11:05   ` Philippe Mathieu-Daudé
2021-05-27 16:03 ` [PATCH v1 3/6] tests/tcg/configure.sh: tweak quoting of target_compiler Alex Bennée
2021-05-28  4:39   ` Thomas Huth
2021-05-27 16:03 ` [PATCH v1 4/6] gitlab-ci: Convert check-dco/check-patch jobs to the 'rules' syntax Alex Bennée
2021-05-27 16:03 ` [PATCH v1 5/6] tests/acceptance: tweak the tcg/kvm tests for virt Alex Bennée
2021-05-27 17:40   ` Richard Henderson
2021-05-27 19:08   ` Willian Rampazzo
2021-05-27 16:03 ` [PATCH v1 6/6] tests/acceptance: tag various arm tests as TCG only Alex Bennée
2021-05-27 17:49   ` Richard Henderson
2021-05-27 19:09   ` Willian Rampazzo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.