All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 00/29] testing and plugin updates
@ 2021-05-17 16:09 Alex Bennée
  2021-05-17 16:09 ` [PULL 01/29] tests/docker: fix copying of executable in "update" Alex Bennée
                   ` (30 more replies)
  0 siblings, 31 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:09 UTC (permalink / raw)
  To: peter.maydell; +Cc: Alex Bennée, qemu-devel

The following changes since commit 6005ee07c380cbde44292f5f6c96e7daa70f4f7d:

  Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2021-05-16 17:22:46 +0100)

are available in the Git repository at:

  https://github.com/stsquad/qemu.git tags/pull-testing-and-plugin-updates-170521-2

for you to fetch changes up to e3ac6f02999e88b9f8fb85013121a9408d07b6e2:

  plugins/hotpages: Properly freed the hash table values (2021-05-17 14:38:44 +0100)

----------------------------------------------------------------
testing and plugin updates:

  - various fixes for binfmt_misc docker images
  - add hexagon check-tcg support docker image
  - add tricore check-tcg support
  - add missing ppc64le tests
  - don't use host_cc for test fallback
  - check-tcg configure.sh tweaks for cross compile/clang
  - fix some memory leaks in plugins

----------------------------------------------------------------
Alessandro Di Federico (1):
      tests/tcg: Use Hexagon Docker image

Alex Bennée (8):
      tests/docker: fix copying of executable in "update"
      tests/docker: make executable an optional argument to "update"
      tests/docker: allow "update" to add the current user
      tests/docker: add "fetch" sub-command
      docker: Add Hexagon image
      tests/tcg: fix missing return
      tests/tcg: don't allow clang as a cross compiler
      configure: use cc, not host_cc to set cross_cc for build arch

Andrew Melnychenko (1):
      tests/docker: Added libbpf library to the docker files.

Bastian Koppelmann (14):
      tests/tcg: Run timeout cmds using --foreground
      hw/tricore: Add testdevice for tests in tests/tcg/
      tests/tcg/tricore: Add build infrastructure
      configure: Emit HOST_CC to config-host.mak
      tests/tcg/tricore: Add macros to create tests and first test 'abs'
      tests/tcg/tricore: Add bmerge test
      tests/tcg/tricore: Add clz test
      tests/tcg/tricore: Add dvstep test
      tests/tcg/tricore: Add fadd test
      tests/tcg/tricore: Add fmul test
      tests/tcg/tricore: Add ftoi test
      tests/tcg/tricore: Add madd test
      tests/tcg/tricore: Add msub test
      tests/tcg/tricore: Add muls test

Mahmoud Mandour (2):
      plugins/hotblocks: Properly freed the hash table values
      plugins/hotpages: Properly freed the hash table values

Matheus Ferst (1):
      tests/tcg/ppc64le: tests for brh/brw/brd

Yonggang Luo (2):
      plugins: Update qemu-plugins.symbols to match qemu-plugins.h
      plugins: Move all typedef and type declaration to the front of the qemu-plugin.h

 configure                                          |   3 +-
 include/hw/tricore/tricore_testdevice.h            |  38 +++++
 include/qemu/qemu-plugin.h                         | 187 ++++++++++-----------
 tests/tcg/tricore/macros.h                         | 129 ++++++++++++++
 contrib/plugins/hotblocks.c                        |   3 +-
 contrib/plugins/hotpages.c                         |   3 +-
 hw/tricore/tricore_testboard.c                     |   8 +
 hw/tricore/tricore_testdevice.c                    |  82 +++++++++
 tests/tcg/multiarch/system/memory.c                |   1 +
 tests/tcg/ppc64le/byte_reverse.c                   |  21 +++
 MAINTAINERS                                        |   3 +
 hw/tricore/meson.build                             |   1 +
 plugins/qemu-plugins.symbols                       |  25 ++-
 tests/docker/Makefile.include                      |  24 ++-
 tests/docker/docker.py                             |  78 ++++++---
 tests/docker/dockerfiles/alpine.docker             |   1 +
 tests/docker/dockerfiles/centos8.docker            |   1 +
 .../docker/dockerfiles/debian-hexagon-cross.docker |  45 +++++
 .../build-toolchain.sh                             | 141 ++++++++++++++++
 tests/docker/dockerfiles/fedora.docker             |   1 +
 tests/tcg/Makefile.target                          |   5 +-
 tests/tcg/configure.sh                             | 149 +++++++++-------
 tests/tcg/ppc64/Makefile.target                    |  13 ++
 tests/tcg/ppc64le/Makefile.target                  |  13 ++
 tests/tcg/tricore/Makefile.softmmu-target          |  26 +++
 tests/tcg/tricore/link.ld                          |  60 +++++++
 tests/tcg/tricore/test_abs.S                       |   7 +
 tests/tcg/tricore/test_bmerge.S                    |   8 +
 tests/tcg/tricore/test_clz.S                       |   9 +
 tests/tcg/tricore/test_dvstep.S                    |  15 ++
 tests/tcg/tricore/test_fadd.S                      |  16 ++
 tests/tcg/tricore/test_fmul.S                      |   8 +
 tests/tcg/tricore/test_ftoi.S                      |  10 ++
 tests/tcg/tricore/test_madd.S                      |  11 ++
 tests/tcg/tricore/test_msub.S                      |   9 +
 tests/tcg/tricore/test_muls.S                      |   9 +
 36 files changed, 966 insertions(+), 197 deletions(-)
 create mode 100644 include/hw/tricore/tricore_testdevice.h
 create mode 100644 tests/tcg/tricore/macros.h
 create mode 100644 hw/tricore/tricore_testdevice.c
 create mode 100644 tests/tcg/ppc64le/byte_reverse.c
 create mode 100644 tests/docker/dockerfiles/debian-hexagon-cross.docker
 create mode 100755 tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh
 create mode 100644 tests/tcg/tricore/Makefile.softmmu-target
 create mode 100644 tests/tcg/tricore/link.ld
 create mode 100644 tests/tcg/tricore/test_abs.S
 create mode 100644 tests/tcg/tricore/test_bmerge.S
 create mode 100644 tests/tcg/tricore/test_clz.S
 create mode 100644 tests/tcg/tricore/test_dvstep.S
 create mode 100644 tests/tcg/tricore/test_fadd.S
 create mode 100644 tests/tcg/tricore/test_fmul.S
 create mode 100644 tests/tcg/tricore/test_ftoi.S
 create mode 100644 tests/tcg/tricore/test_madd.S
 create mode 100644 tests/tcg/tricore/test_msub.S
 create mode 100644 tests/tcg/tricore/test_muls.S

-- 
2.20.1



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

* [PULL 01/29] tests/docker: fix copying of executable in "update"
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
@ 2021-05-17 16:09 ` Alex Bennée
  2021-05-17 16:09 ` [PULL 02/29] tests/docker: make executable an optional argument to "update" Alex Bennée
                   ` (29 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:09 UTC (permalink / raw)
  To: peter.maydell
  Cc: Thomas Huth, qemu-devel, Wainer dos Santos Moschetta,
	Philippe Mathieu-Daudé,
	Willian Rampazzo, Alex Bennée

We have the same symlink chasing problem when doing an "update"
operation. Fix that.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Inspired-by: 5e33f7fead ("tests/docker: better handle symlinked libs")
Message-Id: <20210512102051.12134-3-alex.bennee@linaro.org>

diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index d28df4c140..0435a55d10 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -548,7 +548,14 @@ def run(self, args, argv):
         libs = _get_so_libs(args.executable)
         if libs:
             for l in libs:
-                tmp_tar.add(os.path.realpath(l), arcname=l)
+                so_path = os.path.dirname(l)
+                name = os.path.basename(l)
+                real_l = os.path.realpath(l)
+                try:
+                    tmp_tar.add(real_l, arcname="%s/%s" % (so_path, name))
+                except FileNotFoundError:
+                    print("Couldn't add %s/%s to archive" % (so_path, name))
+                    pass
 
         # Create a Docker buildfile
         df = StringIO()
-- 
2.20.1



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

* [PULL 02/29] tests/docker: make executable an optional argument to "update"
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
  2021-05-17 16:09 ` [PULL 01/29] tests/docker: fix copying of executable in "update" Alex Bennée
@ 2021-05-17 16:09 ` Alex Bennée
  2021-05-17 16:09 ` [PULL 03/29] tests/docker: allow "update" to add the current user Alex Bennée
                   ` (28 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:09 UTC (permalink / raw)
  To: peter.maydell
  Cc: Thomas Huth, qemu-devel, Wainer dos Santos Moschetta,
	Philippe Mathieu-Daudé,
	Willian Rampazzo, Alex Bennée

We're going to extend the abilities of the command shortly.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Message-Id: <20210512102051.12134-4-alex.bennee@linaro.org>

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 9f464cb92c..820423d718 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -248,7 +248,7 @@ docker-run: docker-qemu-src
 	$(if $(EXECUTABLE),						\
 		$(call quiet-command,					\
 			$(DOCKER_SCRIPT) update 			\
-			$(IMAGE) $(EXECUTABLE),				\
+			$(IMAGE) --executable $(EXECUTABLE),		\
 			"  COPYING $(EXECUTABLE) to $(IMAGE)"))
 	$(call quiet-command,						\
 		$(DOCKER_SCRIPT) run 					\
diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index 0435a55d10..9b3425fec2 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -523,7 +523,7 @@ class UpdateCommand(SubCommand):
     def args(self, parser):
         parser.add_argument("tag",
                             help="Image Tag")
-        parser.add_argument("executable",
+        parser.add_argument("--executable",
                             help="Executable to copy")
 
     def run(self, args, argv):
@@ -532,35 +532,37 @@ def run(self, args, argv):
         tmp = tempfile.NamedTemporaryFile(suffix="dckr.tar.gz")
         tmp_tar = TarFile(fileobj=tmp, mode='w')
 
-        # Add the executable to the tarball, using the current
-        # configured binfmt_misc path. If we don't get a path then we
-        # only need the support libraries copied
-        ff, enabled = _check_binfmt_misc(args.executable)
-
-        if not enabled:
-            print("binfmt_misc not enabled, update disabled")
-            return 1
-
-        if ff:
-            tmp_tar.add(args.executable, arcname=ff)
-
-        # Add any associated libraries
-        libs = _get_so_libs(args.executable)
-        if libs:
-            for l in libs:
-                so_path = os.path.dirname(l)
-                name = os.path.basename(l)
-                real_l = os.path.realpath(l)
-                try:
-                    tmp_tar.add(real_l, arcname="%s/%s" % (so_path, name))
-                except FileNotFoundError:
-                    print("Couldn't add %s/%s to archive" % (so_path, name))
-                    pass
-
         # Create a Docker buildfile
         df = StringIO()
         df.write(u"FROM %s\n" % args.tag)
-        df.write(u"ADD . /\n")
+
+        if args.executable:
+            # Add the executable to the tarball, using the current
+            # configured binfmt_misc path. If we don't get a path then we
+            # only need the support libraries copied
+            ff, enabled = _check_binfmt_misc(args.executable)
+
+            if not enabled:
+                print("binfmt_misc not enabled, update disabled")
+                return 1
+
+            if ff:
+                tmp_tar.add(args.executable, arcname=ff)
+
+            # Add any associated libraries
+            libs = _get_so_libs(args.executable)
+            if libs:
+                for l in libs:
+                    so_path = os.path.dirname(l)
+                    name = os.path.basename(l)
+                    real_l = os.path.realpath(l)
+                    try:
+                        tmp_tar.add(real_l, arcname="%s/%s" % (so_path, name))
+                    except FileNotFoundError:
+                        print("Couldn't add %s/%s to archive" % (so_path, name))
+                        pass
+
+            df.write(u"ADD . /\n")
 
         df_bytes = BytesIO(bytes(df.getvalue(), "UTF-8"))
 
-- 
2.20.1



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

* [PULL 03/29] tests/docker: allow "update" to add the current user
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
  2021-05-17 16:09 ` [PULL 01/29] tests/docker: fix copying of executable in "update" Alex Bennée
  2021-05-17 16:09 ` [PULL 02/29] tests/docker: make executable an optional argument to "update" Alex Bennée
@ 2021-05-17 16:09 ` Alex Bennée
  2021-05-17 16:09 ` [PULL 04/29] tests/docker: add "fetch" sub-command Alex Bennée
                   ` (27 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:09 UTC (permalink / raw)
  To: peter.maydell
  Cc: Thomas Huth, qemu-devel, Wainer dos Santos Moschetta,
	Philippe Mathieu-Daudé,
	Willian Rampazzo, Alex Bennée

The current user functionality is used for cross compiling to avoid
complications with permissions when building test programs. However
for images that come from the registry we still need the ability to
add the user after the fact.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Message-Id: <20210512102051.12134-5-alex.bennee@linaro.org>

diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index 9b3425fec2..7a14058801 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -517,7 +517,7 @@ def run(self, args, argv):
 
 
 class UpdateCommand(SubCommand):
-    """ Update a docker image with new executables. Args: <tag> <executable>"""
+    """ Update a docker image. Args: <tag> <actions>"""
     name = "update"
 
     def args(self, parser):
@@ -525,6 +525,9 @@ def args(self, parser):
                             help="Image Tag")
         parser.add_argument("--executable",
                             help="Executable to copy")
+        parser.add_argument("--add-current-user", "-u", dest="user",
+                            action="store_true",
+                            help="Add the current user to image's passwd")
 
     def run(self, args, argv):
         # Create a temporary tarball with our whole build context and
@@ -564,6 +567,13 @@ def run(self, args, argv):
 
             df.write(u"ADD . /\n")
 
+        if args.user:
+            uid = os.getuid()
+            uname = getpwuid(uid).pw_name
+            df.write("\n")
+            df.write("RUN id %s 2>/dev/null || useradd -u %d -U %s" %
+                     (uname, uid, uname))
+
         df_bytes = BytesIO(bytes(df.getvalue(), "UTF-8"))
 
         df_tar = TarInfo(name="Dockerfile")
-- 
2.20.1



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

* [PULL 04/29] tests/docker: add "fetch" sub-command
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (2 preceding siblings ...)
  2021-05-17 16:09 ` [PULL 03/29] tests/docker: allow "update" to add the current user Alex Bennée
@ 2021-05-17 16:09 ` Alex Bennée
  2021-05-17 16:09 ` [PULL 05/29] docker: Add Hexagon image Alex Bennée
                   ` (26 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:09 UTC (permalink / raw)
  To: peter.maydell
  Cc: Thomas Huth, qemu-devel, Wainer dos Santos Moschetta,
	Philippe Mathieu-Daudé,
	Willian Rampazzo, Alex Bennée

This simply wraps up fetching a build from the registry and tagging it
as the local build.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Message-Id: <20210512102051.12134-6-alex.bennee@linaro.org>

diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index 7a14058801..4d9bb7c7ed 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -515,6 +515,23 @@ def run(self, args, argv):
 
         return 0
 
+class FetchCommand(SubCommand):
+    """ Fetch a docker image from the registry. Args: <tag> <registry>"""
+    name = "fetch"
+
+    def args(self, parser):
+        parser.add_argument("tag",
+                            help="Local tag for image")
+        parser.add_argument("registry",
+                            help="Docker registry")
+
+    def run(self, args, argv):
+        dkr = Docker()
+        dkr.command(cmd="pull", quiet=args.quiet,
+                    argv=["%s/%s" % (args.registry, args.tag)])
+        dkr.command(cmd="tag", quiet=args.quiet,
+                    argv=["%s/%s" % (args.registry, args.tag), args.tag])
+
 
 class UpdateCommand(SubCommand):
     """ Update a docker image. Args: <tag> <actions>"""
-- 
2.20.1



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

* [PULL 05/29] docker: Add Hexagon image
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (3 preceding siblings ...)
  2021-05-17 16:09 ` [PULL 04/29] tests/docker: add "fetch" sub-command Alex Bennée
@ 2021-05-17 16:09 ` Alex Bennée
  2021-05-17 16:09 ` [PULL 06/29] tests/tcg: Use Hexagon Docker image Alex Bennée
                   ` (25 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:09 UTC (permalink / raw)
  To: peter.maydell
  Cc: Alessandro Di Federico, Brian Cain, Thomas Huth, qemu-devel,
	Wainer dos Santos Moschetta, Philippe Mathieu-Daudé,
	Willian Rampazzo, Alex Bennée

This image is a little special because it takes a long time to build.
As such most users don't want to be doing that and just pull random
binaries from the ether as intended by the container gods. This
involves someone with credentials and a beefy machine running:

  make docker-image-debian-hexagon-cross V=1 NOCACHE=1 J=30
  docker tag qemu/debian-hexagon-cross registry.gitlab.com/qemu-project/qemu/qemu/debian-hexagon-cross
  docker push registry.gitlab.com/qemu-project/qemu/qemu/debian-hexagon-cross

With a suitable binary in the "cloud" a normal user will run:

  make docker-image-debian-hexagon-cross

or have it run for them through the dependency mechanism of our
over-engineered makefiles and get the binary they wanted. There are a
few wrinkles of course including needing to tweak the final image to
have the credentials of the user so we can actually do our cross
compiles.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Cc: Alessandro Di Federico <ale@rev.ng>
Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
Cc: Brian Cain <bcain@quicinc.com>
Message-Id: <20210512102051.12134-7-alex.bennee@linaro.org>

diff --git a/MAINTAINERS b/MAINTAINERS
index 78561a223f..7572859317 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -197,6 +197,8 @@ F: linux-user/hexagon/
 F: tests/tcg/hexagon/
 F: disas/hexagon.c
 F: default-configs/targets/hexagon-linux-user.mak
+F: docker/dockerfiles/debian-hexagon-cross.docker
+F: docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh
 
 HPPA (PA-RISC) TCG CPUs
 M: Richard Henderson <richard.henderson@linaro.org>
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 820423d718..8967ecf118 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -148,6 +148,28 @@ docker-image-debian-s390x-cross: docker-image-debian10
 docker-image-debian-sh4-cross: docker-image-debian10
 docker-image-debian-sparc64-cross: docker-image-debian10
 
+#
+# The build rule for hexagon-cross is special in so far for most of
+# the time we don't want to build it. While dockers caching does avoid
+# this most of the time sometimes we want to force the issue.
+#
+docker-image-debian-hexagon-cross: $(DOCKER_FILES_DIR)/debian-hexagon-cross.docker
+	$(if $(NOCACHE), 								\
+		$(call quiet-command,							\
+			$(DOCKER_SCRIPT) build -t qemu/debian-hexagon-cross -f $< 	\
+			$(if $V,,--quiet) --no-cache 					\
+			--registry $(DOCKER_REGISTRY) --extra-files			\
+			$(DOCKER_FILES_DIR)/debian-hexagon-cross.docker.d/build-toolchain.sh, \
+			"BUILD", "debian-hexagon-cross"),				\
+		$(call quiet-command,							\
+			$(DOCKER_SCRIPT) fetch $(if $V,,--quiet)			\
+				qemu/debian-hexagon-cross $(DOCKER_REGISTRY),		\
+			"FETCH", "debian-hexagon-cross")				\
+		$(call quiet-command,							\
+			$(DOCKER_SCRIPT) update $(if $V,,--quiet) 			\
+				qemu/debian-hexagon-cross --add-current-user,		\
+			"PREPARE", "debian-hexagon-cross"))
+
 # Specialist build images, sometimes very limited tools
 docker-image-debian-tricore-cross: docker-image-debian10
 docker-image-debian-all-test-cross: docker-image-debian10
diff --git a/tests/docker/dockerfiles/debian-hexagon-cross.docker b/tests/docker/dockerfiles/debian-hexagon-cross.docker
new file mode 100644
index 0000000000..d5dc299dc1
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-hexagon-cross.docker
@@ -0,0 +1,45 @@
+#
+# Docker Hexagon cross-compiler target
+#
+# This docker target is used for building hexagon tests. As it also
+# needs to be able to build QEMU itself in CI we include it's
+# build-deps. It is also a "stand-alone" image so as not to be
+# triggered by re-builds on other base images given it takes a long
+# time to build.
+#
+FROM qemu/debian10
+
+# Install common build utilities
+RUN apt update && \
+    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
+    DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt install -y --no-install-recommends \
+        bison \
+        cmake \
+        flex \
+        lld \
+        rsync \
+        wget
+
+ENV TOOLCHAIN_INSTALL /usr/local
+ENV ROOTFS /usr/local
+
+ENV LLVM_URL https://github.com/llvm/llvm-project/archive/bfcd21876adc3498065e4da92799f613e730d475.tar.gz
+ENV MUSL_URL https://github.com/quic/musl/archive/aff74b395fbf59cd7e93b3691905aa1af6c0778c.tar.gz
+ENV LINUX_URL https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.6.18.tar.xz
+
+ADD build-toolchain.sh /root/hexagon-toolchain/build-toolchain.sh
+
+RUN cd /root/hexagon-toolchain && ./build-toolchain.sh
+
+FROM debian:buster-slim
+# Duplicate deb line as deb-src
+RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
+# Install QEMU build deps for use in CI
+RUN apt update && \
+    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
+    DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy git ninja-build && \
+    DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt build-dep -yy --arch-only qemu
+COPY --from=0 /usr/local /usr/local
+ENV PATH $PATH:/usr/local/bin/
diff --git a/tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh b/tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh
new file mode 100755
index 0000000000..19b1c9f83e
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh
@@ -0,0 +1,141 @@
+#!/bin/bash
+
+set -e
+
+BASE=$(readlink -f ${PWD})
+
+TOOLCHAIN_INSTALL=$(readlink -f "$TOOLCHAIN_INSTALL")
+ROOTFS=$(readlink -f "$ROOTFS")
+
+TOOLCHAIN_BIN=${TOOLCHAIN_INSTALL}/bin
+HEX_SYSROOT=${TOOLCHAIN_INSTALL}/hexagon-unknown-linux-musl
+HEX_TOOLS_TARGET_BASE=${HEX_SYSROOT}/usr
+
+function cdp() {
+  DIR="$1"
+  mkdir -p "$DIR"
+  cd "$DIR"
+}
+
+function fetch() {
+  DIR="$1"
+  URL="$2"
+  TEMP="$(readlink -f "$PWD/tmp.tar.gz")"
+  wget --quiet "$URL" -O "$TEMP"
+  cdp "$DIR"
+  tar xaf "$TEMP" --strip-components=1
+  rm "$TEMP"
+  cd -
+}
+
+build_llvm_clang() {
+  fetch "$BASE/llvm-project" "$LLVM_URL"
+  cdp "$BASE/build-llvm"
+
+  cmake -G Ninja \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=${TOOLCHAIN_INSTALL} \
+    -DLLVM_ENABLE_LLD=ON \
+    -DLLVM_TARGETS_TO_BUILD="Hexagon" \
+    -DLLVM_ENABLE_PROJECTS="clang;lld" \
+    "$BASE/llvm-project/llvm"
+  ninja all install
+  cd ${TOOLCHAIN_BIN}
+  ln -sf clang hexagon-unknown-linux-musl-clang
+  ln -sf clang++ hexagon-unknown-linux-musl-clang++
+  ln -sf llvm-ar hexagon-unknown-linux-musl-ar
+  ln -sf llvm-objdump hexagon-unknown-linux-musl-objdump
+  ln -sf llvm-objcopy hexagon-unknown-linux-musl-objcopy
+  ln -sf llvm-readelf hexagon-unknown-linux-musl-readelf
+  ln -sf llvm-ranlib hexagon-unknown-linux-musl-ranlib
+
+  # workaround for now:
+  cat <<EOF > hexagon-unknown-linux-musl.cfg
+-G0 --sysroot=${HEX_SYSROOT}
+EOF
+}
+
+build_clang_rt() {
+  cdp "$BASE/build-clang_rt"
+  cmake -G Ninja \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DLLVM_CONFIG_PATH="$BASE/build-llvm/bin/llvm-config" \
+    -DCMAKE_ASM_FLAGS="-G0 -mlong-calls -fno-pic --target=hexagon-unknown-linux-musl " \
+    -DCMAKE_SYSTEM_NAME=Linux \
+    -DCMAKE_C_COMPILER="${TOOLCHAIN_BIN}/hexagon-unknown-linux-musl-clang" \
+    -DCMAKE_ASM_COMPILER="${TOOLCHAIN_BIN}/hexagon-unknown-linux-musl-clang" \
+    -DCMAKE_INSTALL_PREFIX=${HEX_TOOLS_TARGET_BASE} \
+    -DCMAKE_CROSSCOMPILING=ON \
+    -DCMAKE_C_COMPILER_FORCED=ON \
+    -DCMAKE_CXX_COMPILER_FORCED=ON \
+    -DCOMPILER_RT_BUILD_BUILTINS=ON \
+    -DCOMPILER_RT_BUILTINS_ENABLE_PIC=OFF \
+    -DCMAKE_SIZEOF_VOID_P=4 \
+    -DCOMPILER_RT_OS_DIR= \
+    -DCAN_TARGET_hexagon=1 \
+    -DCAN_TARGET_x86_64=0 \
+    -DCOMPILER_RT_SUPPORTED_ARCH=hexagon \
+    -DLLVM_ENABLE_PROJECTS="compiler-rt" \
+    "$BASE/llvm-project/compiler-rt"
+  ninja install-compiler-rt
+}
+
+build_musl_headers() {
+  fetch "$BASE/musl" "$MUSL_URL"
+  cd "$BASE/musl"
+  make clean
+  CC=${TOOLCHAIN_BIN}/hexagon-unknown-linux-musl-clang \
+    CROSS_COMPILE=hexagon-unknown-linux-musl \
+    LIBCC=${HEX_TOOLS_TARGET_BASE}/lib/libclang_rt.builtins-hexagon.a \
+    CROSS_CFLAGS="-G0 -O0 -mv65 -fno-builtin -fno-rounding-math --target=hexagon-unknown-linux-musl" \
+    ./configure --target=hexagon --prefix=${HEX_TOOLS_TARGET_BASE}
+  PATH=${TOOLCHAIN_BIN}:$PATH make CROSS_COMPILE= install-headers
+
+  cd ${HEX_SYSROOT}/..
+  ln -sf hexagon-unknown-linux-musl hexagon
+}
+
+build_kernel_headers() {
+  fetch "$BASE/linux" "$LINUX_URL"
+  mkdir -p "$BASE/build-linux"
+  cd "$BASE/linux"
+  make O=../build-linux ARCH=hexagon \
+   KBUILD_CFLAGS_KERNEL="-mlong-calls" \
+   CC=${TOOLCHAIN_BIN}/hexagon-unknown-linux-musl-clang \
+   LD=${TOOLCHAIN_BIN}/ld.lld \
+   KBUILD_VERBOSE=1 comet_defconfig
+  make mrproper
+
+  cd "$BASE/build-linux"
+  make \
+    ARCH=hexagon \
+    CC=${TOOLCHAIN_BIN}/clang \
+    INSTALL_HDR_PATH=${HEX_TOOLS_TARGET_BASE} \
+    V=1 \
+    headers_install
+}
+
+build_musl() {
+  cd "$BASE/musl"
+  make clean
+  CROSS_COMPILE=hexagon-unknown-linux-musl- \
+    AR=llvm-ar \
+    RANLIB=llvm-ranlib \
+    STRIP=llvm-strip \
+    CC=clang \
+    LIBCC=${HEX_TOOLS_TARGET_BASE}/lib/libclang_rt.builtins-hexagon.a \
+    CFLAGS="-G0 -O0 -mv65 -fno-builtin -fno-rounding-math --target=hexagon-unknown-linux-musl" \
+    ./configure --target=hexagon --prefix=${HEX_TOOLS_TARGET_BASE}
+  PATH=${TOOLCHAIN_BIN}/:$PATH make CROSS_COMPILE= install
+  cd ${HEX_TOOLS_TARGET_BASE}/lib
+  ln -sf libc.so ld-musl-hexagon.so
+  ln -sf ld-musl-hexagon.so ld-musl-hexagon.so.1
+  cdp ${HEX_TOOLS_TARGET_BASE}/../lib
+  ln -sf ../usr/lib/ld-musl-hexagon.so.1
+}
+
+build_llvm_clang
+build_kernel_headers
+build_musl_headers
+build_clang_rt
+build_musl
-- 
2.20.1



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

* [PULL 06/29] tests/tcg: Use Hexagon Docker image
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (4 preceding siblings ...)
  2021-05-17 16:09 ` [PULL 05/29] docker: Add Hexagon image Alex Bennée
@ 2021-05-17 16:09 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 07/29] tests/docker: Added libbpf library to the docker files Alex Bennée
                   ` (24 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:09 UTC (permalink / raw)
  To: peter.maydell
  Cc: Alessandro Di Federico, Alex Bennée, qemu-devel,
	Philippe Mathieu-Daudé

From: Alessandro Di Federico <ale@rev.ng>

[PMD: Split from 'Add Hexagon Docker image' patch]

[AJB: add container_hosts]

Signed-off-by: Alessandro Di Federico <ale@rev.ng>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210228222314.304787-5-f4bug@amsat.org>
Message-Id: <20210512102051.12134-8-alex.bennee@linaro.org>

diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
index 8f20ce065d..cf6062a15f 100755
--- a/tests/tcg/configure.sh
+++ b/tests/tcg/configure.sh
@@ -128,6 +128,11 @@ for target in $target_list; do
       container_image=fedora-cris-cross
       container_cross_cc=cris-linux-gnu-gcc
       ;;
+    hexagon-*)
+      container_hosts=x86_64
+      container_image=debian-hexagon-cross
+      container_cross_cc=hexagon-unknown-linux-musl-clang
+      ;;
     hppa-*)
       container_hosts=x86_64
       container_image=debian-hppa-cross
-- 
2.20.1



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

* [PULL 07/29] tests/docker: Added libbpf library to the docker files.
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (5 preceding siblings ...)
  2021-05-17 16:09 ` [PULL 06/29] tests/tcg: Use Hexagon Docker image Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 08/29] tests/tcg: Run timeout cmds using --foreground Alex Bennée
                   ` (23 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell
  Cc: Andrew Melnychenko, qemu-devel, Wainer dos Santos Moschetta,
	Philippe Mathieu-Daudé,
	Willian Rampazzo, Thomas Huth, Alex Bennée

From: Andrew Melnychenko <andrew@daynix.com>

The series of patches for eBPF RSS adds libbpf dependency for qemu.
https://lists.gnu.org/archive/html/qemu-devel/2021-03/msg08887.html

With this patch, libbpf added:
  Alpine - added libbpf-dev
  Centos 8 - added libbpf-devel
  Fedora - added libbpf-devel

Signed-off-by: Andrew Melnychenko <andrew@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210406082947.672708-2-andrew@daynix.com>
Message-Id: <20210512102051.12134-11-alex.bennee@linaro.org>

diff --git a/tests/docker/dockerfiles/alpine.docker b/tests/docker/dockerfiles/alpine.docker
index 0ac46ddd91..7eeecacc46 100644
--- a/tests/docker/dockerfiles/alpine.docker
+++ b/tests/docker/dockerfiles/alpine.docker
@@ -20,6 +20,7 @@ ENV PACKAGES \
 	gnutls-dev \
 	gtk+3.0-dev \
 	libaio-dev \
+	libbpf-dev \
 	libcap-ng-dev \
 	libjpeg-turbo-dev \
 	libnfs-dev \
diff --git a/tests/docker/dockerfiles/centos8.docker b/tests/docker/dockerfiles/centos8.docker
index a8c6c528b0..efc1349cc8 100644
--- a/tests/docker/dockerfiles/centos8.docker
+++ b/tests/docker/dockerfiles/centos8.docker
@@ -14,6 +14,7 @@ ENV PACKAGES \
     git \
     glib2-devel \
     libaio-devel \
+    libbpf-devel \
     libepoxy-devel \
     libfdt-devel \
     libgcrypt-devel \
diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker
index d8fa16372d..0979c0e1f4 100644
--- a/tests/docker/dockerfiles/fedora.docker
+++ b/tests/docker/dockerfiles/fedora.docker
@@ -32,6 +32,7 @@ ENV PACKAGES \
     libcurl-devel \
     libepoxy-devel \
     libfdt-devel \
+    libbpf-devel \
     libiscsi-devel \
     libjpeg-devel \
     libpmem-devel \
-- 
2.20.1



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

* [PULL 08/29] tests/tcg: Run timeout cmds using --foreground
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (6 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 07/29] tests/docker: Added libbpf library to the docker files Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 09/29] hw/tricore: Add testdevice for tests in tests/tcg/ Alex Bennée
                   ` (22 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell
  Cc: Bastian Koppelmann, Alex Bennée, qemu-devel,
	Philippe Mathieu-Daudé

From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

when trying to run successful short tests from the Makefile timeout would not
terminate. Rather it would wait until the time runs out. Excerpt from the
manpage:

--foreground
    when not running timeout directly from a shell prompt,
    allow COMMAND to read from the TTY and get TTY signals; in this mode, chil‐
    dren of COMMAND will not be timed out

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210305170045.869437-3-kbastian@mail.uni-paderborn.de>
Message-Id: <20210512102051.12134-13-alex.bennee@linaro.org>

diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target
index cab8c6b3a2..b29fae4630 100644
--- a/tests/tcg/Makefile.target
+++ b/tests/tcg/Makefile.target
@@ -43,9 +43,10 @@ quiet-command = $(if $(V),$1,$(if $(2),@printf "  %-7s %s\n" $2 $3 && $1, @$1))
 
 # $1 = test name, $2 = cmd, $3 = desc
 ifdef CONFIG_USER_ONLY
-run-test = $(call quiet-command, timeout $(TIMEOUT) $2 > $1.out,"TEST",$3)
+run-test = $(call quiet-command, timeout --foreground $(TIMEOUT) $2 > $1.out, \
+	"TEST",$3)
 else
-run-test = $(call quiet-command, timeout $(TIMEOUT) $2,"TEST",$3)
+run-test = $(call quiet-command, timeout --foreground $(TIMEOUT) $2,"TEST",$3)
 endif
 
 # $1 = test name, $2 = reference
-- 
2.20.1



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

* [PULL 09/29] hw/tricore: Add testdevice for tests in tests/tcg/
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (7 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 08/29] tests/tcg: Run timeout cmds using --foreground Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 10/29] tests/tcg/tricore: Add build infrastructure Alex Bennée
                   ` (21 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Bastian Koppelmann, Alex Bennée, qemu-devel

From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

this device is used to verify the correctness of regression tests by
allowing guests to write their exit status to this device. This is then
used by qemu to exit using the written status.

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210305170045.869437-4-kbastian@mail.uni-paderborn.de>
Message-Id: <20210512102051.12134-14-alex.bennee@linaro.org>

diff --git a/include/hw/tricore/tricore_testdevice.h b/include/hw/tricore/tricore_testdevice.h
new file mode 100644
index 0000000000..2c56c51bcb
--- /dev/null
+++ b/include/hw/tricore/tricore_testdevice.h
@@ -0,0 +1,38 @@
+/*
+ *  Copyright (c) 2018-2021  Bastian Koppelmann Paderborn University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#ifndef HW_TRICORE_TESTDEV_H
+#define HW_TRICORE_TESTDEV_H
+
+#include "hw/sysbus.h"
+#include "hw/hw.h"
+
+#define TYPE_TRICORE_TESTDEVICE "tricore_testdevice"
+#define TRICORE_TESTDEVICE(obj) \
+    OBJECT_CHECK(TriCoreTestDeviceState, (obj), TYPE_TRICORE_TESTDEVICE)
+
+typedef struct {
+    /* <private> */
+    SysBusDevice parent_obj;
+
+    /* <public> */
+    MemoryRegion iomem;
+
+} TriCoreTestDeviceState;
+
+#endif
diff --git a/hw/tricore/tricore_testboard.c b/hw/tricore/tricore_testboard.c
index 51658d9e37..b6810e3be0 100644
--- a/hw/tricore/tricore_testboard.c
+++ b/hw/tricore/tricore_testboard.c
@@ -27,6 +27,7 @@
 #include "hw/loader.h"
 #include "elf.h"
 #include "hw/tricore/tricore.h"
+#include "hw/tricore/tricore_testdevice.h"
 #include "qemu/error-report.h"
 
 
@@ -56,6 +57,7 @@ static void tricore_testboard_init(MachineState *machine, int board_id)
 {
     TriCoreCPU *cpu;
     CPUTriCoreState *env;
+    TriCoreTestDeviceState *test_dev;
 
     MemoryRegion *sysmem = get_system_memory();
     MemoryRegion *ext_cram = g_new(MemoryRegion, 1);
@@ -87,6 +89,12 @@ static void tricore_testboard_init(MachineState *machine, int board_id)
     memory_region_add_subregion(sysmem, 0xf0050000, pcp_data);
     memory_region_add_subregion(sysmem, 0xf0060000, pcp_text);
 
+    test_dev = g_new(TriCoreTestDeviceState, 1);
+    object_initialize(test_dev, sizeof(TriCoreTestDeviceState),
+                      TYPE_TRICORE_TESTDEVICE);
+    memory_region_add_subregion(sysmem, 0xf0000000, &test_dev->iomem);
+
+
     tricoretb_binfo.ram_size = machine->ram_size;
     tricoretb_binfo.kernel_filename = machine->kernel_filename;
 
diff --git a/hw/tricore/tricore_testdevice.c b/hw/tricore/tricore_testdevice.c
new file mode 100644
index 0000000000..a1563aa568
--- /dev/null
+++ b/hw/tricore/tricore_testdevice.c
@@ -0,0 +1,82 @@
+/*
+ *  Copyright (c) 2018-2021 Bastian Koppelmann Paderborn University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "qemu/osdep.h"
+#include "hw/sysbus.h"
+#include "hw/qdev-properties.h"
+#include "hw/tricore/tricore_testdevice.h"
+
+static void tricore_testdevice_write(void *opaque, hwaddr offset,
+                                      uint64_t value, unsigned size)
+{
+    exit(value);
+}
+
+static uint64_t tricore_testdevice_read(void *opaque, hwaddr offset,
+                                         unsigned size)
+{
+    return 0xdeadbeef;
+}
+
+static void tricore_testdevice_reset(DeviceState *dev)
+{
+}
+
+static const MemoryRegionOps tricore_testdevice_ops = {
+    .read = tricore_testdevice_read,
+    .write = tricore_testdevice_write,
+    .valid = {
+        .min_access_size = 4,
+        .max_access_size = 4,
+    },
+    .endianness = DEVICE_NATIVE_ENDIAN,
+};
+
+static void tricore_testdevice_init(Object *obj)
+{
+    TriCoreTestDeviceState *s = TRICORE_TESTDEVICE(obj);
+   /* map memory */
+    memory_region_init_io(&s->iomem, OBJECT(s), &tricore_testdevice_ops, s,
+                          "tricore_testdevice", 0x4);
+}
+
+static Property tricore_testdevice_properties[] = {
+    DEFINE_PROP_END_OF_LIST()
+};
+
+static void tricore_testdevice_class_init(ObjectClass *klass, void *data)
+{
+    DeviceClass *dc = DEVICE_CLASS(klass);
+
+    device_class_set_props(dc, tricore_testdevice_properties);
+    dc->reset = tricore_testdevice_reset;
+}
+
+static const TypeInfo tricore_testdevice_info = {
+    .name          = TYPE_TRICORE_TESTDEVICE,
+    .parent        = TYPE_SYS_BUS_DEVICE,
+    .instance_size = sizeof(TriCoreTestDeviceState),
+    .instance_init = tricore_testdevice_init,
+    .class_init    = tricore_testdevice_class_init,
+};
+
+static void tricore_testdevice_register_types(void)
+{
+    type_register_static(&tricore_testdevice_info);
+}
+
+type_init(tricore_testdevice_register_types)
diff --git a/hw/tricore/meson.build b/hw/tricore/meson.build
index 77ff6fd137..47e36bb077 100644
--- a/hw/tricore/meson.build
+++ b/hw/tricore/meson.build
@@ -1,5 +1,6 @@
 tricore_ss = ss.source_set()
 tricore_ss.add(when: 'CONFIG_TRICORE', if_true: files('tricore_testboard.c'))
+tricore_ss.add(when: 'CONFIG_TRICORE', if_true: files('tricore_testdevice.c'))
 tricore_ss.add(when: 'CONFIG_TRIBOARD', if_true: files('triboard.c'))
 tricore_ss.add(when: 'CONFIG_TC27X_SOC', if_true: files('tc27x_soc.c'))
 
-- 
2.20.1



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

* [PULL 10/29] tests/tcg/tricore: Add build infrastructure
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (8 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 09/29] hw/tricore: Add testdevice for tests in tests/tcg/ Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 11/29] configure: Emit HOST_CC to config-host.mak Alex Bennée
                   ` (20 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Bastian Koppelmann, Alex Bennée, qemu-devel

From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

this includes the Makefile and linker script to build all the tests.

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210305170045.869437-5-kbastian@mail.uni-paderborn.de>
Message-Id: <20210512102051.12134-15-alex.bennee@linaro.org>

diff --git a/MAINTAINERS b/MAINTAINERS
index 7572859317..40bba0fc4c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -349,6 +349,7 @@ S: Maintained
 F: target/tricore/
 F: hw/tricore/
 F: include/hw/tricore/
+F: tests/tcg/tricore/
 
 Multiarch Linux User Tests
 M: Alex Bennée <alex.bennee@linaro.org>
diff --git a/tests/tcg/tricore/Makefile.softmmu-target b/tests/tcg/tricore/Makefile.softmmu-target
new file mode 100644
index 0000000000..d64a99b95f
--- /dev/null
+++ b/tests/tcg/tricore/Makefile.softmmu-target
@@ -0,0 +1,15 @@
+TESTS_PATH = $(SRC_PATH)/tests/tcg/tricore
+
+LDFLAGS = -T$(TESTS_PATH)/link.ld
+ASFLAGS =
+
+QEMU_OPTS += -M tricore_testboard -nographic -kernel
+
+%.pS: $(TESTS_PATH)/%.S
+	$(HOST_CC) -E -o $@ $<
+
+%.o: %.pS
+	$(AS) $(ASFLAGS) -o $@ $<
+
+%.tst: %.o
+	$(LD) $(LDFLAGS) $< -o $@
diff --git a/tests/tcg/tricore/link.ld b/tests/tcg/tricore/link.ld
new file mode 100644
index 0000000000..364bcdc00a
--- /dev/null
+++ b/tests/tcg/tricore/link.ld
@@ -0,0 +1,60 @@
+/* Default linker script, for normal executables */
+OUTPUT_FORMAT("elf32-tricore")
+OUTPUT_ARCH(tricore)
+ENTRY(_start)
+
+/* the internal ram description */
+MEMORY
+{
+  text_ram (rx!p): org = 0x80000000, len = 15K
+  data_ram (w!xp): org = 0xd0000000, len = 130K
+}
+/*
+ * Define the sizes of the user and system stacks.
+ */
+__USTACK_SIZE = DEFINED (__USTACK_SIZE) ? __USTACK_SIZE : 1K ;
+/*
+ * Define the start address and the size of the context save area.
+ */
+__CSA_BEGIN =  0xd0000000 ;
+__CSA_SIZE =  8k ;
+__CSA_END = __CSA_BEGIN + __CSA_SIZE ;
+
+SECTIONS
+{
+  .text  :
+  {
+    *(.text)
+    . = ALIGN(8);
+  } > text_ram
+
+  .rodata :
+  {
+    *(.rodata)
+    *(.rodata1)
+  } > data_ram
+
+  .data :
+  {
+    . = ALIGN(8) ;
+    *(.data)
+    *(.data.*)
+    . = ALIGN(8) ;
+    __USTACK = . + __USTACK_SIZE -768;
+
+  } > data_ram
+  /*
+   * Allocate space for BSS sections.
+   */
+  .bss  :
+  {
+    BSS_BASE = . ;
+    *(.bss)
+    *(COMMON)
+    . = ALIGN(8) ;
+  } > data_ram
+  /* Make sure CSA, stack and heap addresses are properly aligned.  */
+  _. = ASSERT ((__CSA_BEGIN & 0x3f) == 0 , "illegal CSA start address") ;
+  _. = ASSERT ((__CSA_SIZE & 0x3f) == 0 , "illegal CSA size") ;
+
+}
-- 
2.20.1



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

* [PULL 11/29] configure: Emit HOST_CC to config-host.mak
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (9 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 10/29] tests/tcg/tricore: Add build infrastructure Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 12/29] tests/tcg/tricore: Add macros to create tests and first test 'abs' Alex Bennée
                   ` (19 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Bastian Koppelmann, Alex Bennée, qemu-devel

From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

this is needed by the tricore-tcg-tests as tricore-gcc is not easily
available. Thus we rely on the HOST_CC to do the preprocessing of the
tricore assembly files.

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210305170045.869437-6-kbastian@mail.uni-paderborn.de>
Message-Id: <20210512102051.12134-16-alex.bennee@linaro.org>

diff --git a/configure b/configure
index 0e4233fd8a..df11c8bad0 100755
--- a/configure
+++ b/configure
@@ -6164,6 +6164,7 @@ echo "GENISOIMAGE=$genisoimage" >> $config_host_mak
 echo "MESON=$meson" >> $config_host_mak
 echo "NINJA=$ninja" >> $config_host_mak
 echo "CC=$cc" >> $config_host_mak
+echo "HOST_CC=$host_cc" >> $config_host_mak
 if $iasl -h > /dev/null 2>&1; then
   echo "CONFIG_IASL=$iasl" >> $config_host_mak
 fi
-- 
2.20.1



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

* [PULL 12/29] tests/tcg/tricore: Add macros to create tests and first test 'abs'
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (10 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 11/29] configure: Emit HOST_CC to config-host.mak Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 13/29] tests/tcg/tricore: Add bmerge test Alex Bennée
                   ` (18 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Bastian Koppelmann, Alex Bennée, qemu-devel

From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

This kind of tests is inspired by the riscv-tests repository. This adds
macros that makes it easy to create single instruction self containing
tests.

It is achieved by macros that create a test sequence for an
instruction and check for a supplied correct value. If the value is correct the
next instruction is tested. Otherwise we jump to fail handler that writes is
test number as a status code back to qemu that then exits on that status code.
If all tests pass we write back 0 as a status code and exit.

[AJB: add container_hosts]

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210305170045.869437-7-kbastian@mail.uni-paderborn.de>
Message-Id: <20210512102051.12134-17-alex.bennee@linaro.org>

diff --git a/tests/tcg/tricore/macros.h b/tests/tcg/tricore/macros.h
new file mode 100644
index 0000000000..76c133132a
--- /dev/null
+++ b/tests/tcg/tricore/macros.h
@@ -0,0 +1,53 @@
+/* Helpers */
+#define LI(reg, val)           \
+    mov.u reg, lo:val;         \
+    movh DREG_TEMP_LI, up:val; \
+    or reg, reg, DREG_TEMP_LI; \
+
+/* Address definitions */
+#define TESTDEV_ADDR 0xf0000000
+/* Register definitions */
+#define DREG_RS1 %d0
+#define DREG_CALC_RESULT %d1
+#define DREG_TEMP_LI %d10
+#define DREG_TEMP %d11
+#define DREG_TEST_NUM %d14
+#define DREG_CORRECT_RESULT %d15
+
+#define DREG_DEV_ADDR %a15
+
+/* Test case wrappers */
+#define TEST_CASE(num, testreg, correct, code...) \
+test_ ## num:                                     \
+    code;                                         \
+    LI(DREG_CORRECT_RESULT, correct)              \
+    mov DREG_TEST_NUM, num;                       \
+    jne testreg, DREG_CORRECT_RESULT, fail        \
+
+/* Actual test case type
+ * e.g inst %dX, %dY      -> TEST_D_D
+ *     inst %dX, %dY, %dZ -> TEST_D_DD
+ *     inst %eX, %dY, %dZ -> TEST_E_DD
+ */
+#define TEST_D_D(insn, num, result, rs1)      \
+    TEST_CASE(num, DREG_CALC_RESULT, result,  \
+    LI(DREG_RS1, rs1);                        \
+    insn DREG_CALC_RESULT, DREG_RS1;          \
+    )
+
+/* Pass/Fail handling part */
+#define TEST_PASSFAIL                       \
+        j pass;                             \
+fail:                                       \
+        LI(DREG_TEMP, TESTDEV_ADDR)         \
+        mov.a DREG_DEV_ADDR, DREG_TEMP;     \
+        st.w [DREG_DEV_ADDR], DREG_TEST_NUM;\
+        debug;                              \
+        j fail;                             \
+pass:                                       \
+        LI(DREG_TEMP, TESTDEV_ADDR)         \
+        mov.a DREG_DEV_ADDR, DREG_TEMP;     \
+        mov DREG_TEST_NUM, 0;               \
+        st.w [DREG_DEV_ADDR], DREG_TEST_NUM;\
+        debug;                              \
+        j pass;
diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
index cf6062a15f..d13d2bb388 100755
--- a/tests/tcg/configure.sh
+++ b/tests/tcg/configure.sh
@@ -203,6 +203,12 @@ for target in $target_list; do
       container_image=debian-sparc64-cross
       container_cross_cc=sparc64-linux-gnu-gcc
       ;;
+    tricore-softmmu)
+      container_hosts=x86_64
+      container_image=debian-tricore-cross
+      container_cross_as=tricore-as
+      container_cross_ld=tricore-ld
+      ;;
     x86_64-*)
       container_hosts="aarch64 ppc64el x86_64"
       container_image=debian-amd64-cross
diff --git a/tests/tcg/tricore/Makefile.softmmu-target b/tests/tcg/tricore/Makefile.softmmu-target
index d64a99b95f..3b048e49fa 100644
--- a/tests/tcg/tricore/Makefile.softmmu-target
+++ b/tests/tcg/tricore/Makefile.softmmu-target
@@ -3,6 +3,8 @@ TESTS_PATH = $(SRC_PATH)/tests/tcg/tricore
 LDFLAGS = -T$(TESTS_PATH)/link.ld
 ASFLAGS =
 
+TESTS += test_abs.tst
+
 QEMU_OPTS += -M tricore_testboard -nographic -kernel
 
 %.pS: $(TESTS_PATH)/%.S
diff --git a/tests/tcg/tricore/test_abs.S b/tests/tcg/tricore/test_abs.S
new file mode 100644
index 0000000000..e42240159a
--- /dev/null
+++ b/tests/tcg/tricore/test_abs.S
@@ -0,0 +1,7 @@
+#include "macros.h"
+.text
+.global _start
+_start:
+    TEST_D_D(abs, 1, 0, 0)
+
+    TEST_PASSFAIL
-- 
2.20.1



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

* [PULL 13/29] tests/tcg/tricore: Add bmerge test
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (11 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 12/29] tests/tcg/tricore: Add macros to create tests and first test 'abs' Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 14/29] tests/tcg/tricore: Add clz test Alex Bennée
                   ` (17 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Bastian Koppelmann, Alex Bennée, qemu-devel

From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210305170045.869437-8-kbastian@mail.uni-paderborn.de>
Message-Id: <20210512102051.12134-18-alex.bennee@linaro.org>

diff --git a/tests/tcg/tricore/macros.h b/tests/tcg/tricore/macros.h
index 76c133132a..52aa936c56 100644
--- a/tests/tcg/tricore/macros.h
+++ b/tests/tcg/tricore/macros.h
@@ -8,7 +8,10 @@
 #define TESTDEV_ADDR 0xf0000000
 /* Register definitions */
 #define DREG_RS1 %d0
+#define DREG_RS2 %d1
 #define DREG_CALC_RESULT %d1
+#define DREG_CALC_PSW %d2
+#define DREG_CORRECT_PSW %d3
 #define DREG_TEMP_LI %d10
 #define DREG_TEMP %d11
 #define DREG_TEST_NUM %d14
@@ -24,6 +27,17 @@ test_ ## num:                                     \
     mov DREG_TEST_NUM, num;                       \
     jne testreg, DREG_CORRECT_RESULT, fail        \
 
+#define TEST_CASE_PSW(num, testreg, correct, correct_psw, code...) \
+test_ ## num:                                                      \
+    code;                                                          \
+    LI(DREG_CORRECT_RESULT, correct)                               \
+    mov DREG_TEST_NUM, num;                                        \
+    jne testreg, DREG_CORRECT_RESULT, fail;                        \
+    mfcr DREG_CALC_PSW, $psw;                                      \
+    LI(DREG_CORRECT_PSW, correct_psw)                              \
+    mov DREG_TEST_NUM, num;                                        \
+    jne DREG_CALC_PSW, DREG_CORRECT_PSW, fail;
+
 /* Actual test case type
  * e.g inst %dX, %dY      -> TEST_D_D
  *     inst %dX, %dY, %dZ -> TEST_D_DD
@@ -35,6 +49,16 @@ test_ ## num:                                     \
     insn DREG_CALC_RESULT, DREG_RS1;          \
     )
 
+#define TEST_D_DD_PSW(insn, num, result, psw, rs1, rs2) \
+    TEST_CASE_PSW(num, DREG_CALC_RESULT, result, psw,   \
+    LI(DREG_RS1, rs1);                                  \
+    LI(DREG_RS2, rs2);                                  \
+    rstv;                                               \
+    insn DREG_CALC_RESULT, DREG_RS1, DREG_RS2;          \
+    )
+
+
+
 /* Pass/Fail handling part */
 #define TEST_PASSFAIL                       \
         j pass;                             \
diff --git a/tests/tcg/tricore/Makefile.softmmu-target b/tests/tcg/tricore/Makefile.softmmu-target
index 3b048e49fa..de6a2cc88e 100644
--- a/tests/tcg/tricore/Makefile.softmmu-target
+++ b/tests/tcg/tricore/Makefile.softmmu-target
@@ -4,6 +4,7 @@ LDFLAGS = -T$(TESTS_PATH)/link.ld
 ASFLAGS =
 
 TESTS += test_abs.tst
+TESTS += test_bmerge.tst
 
 QEMU_OPTS += -M tricore_testboard -nographic -kernel
 
diff --git a/tests/tcg/tricore/test_bmerge.S b/tests/tcg/tricore/test_bmerge.S
new file mode 100644
index 0000000000..8a0fa6d3f6
--- /dev/null
+++ b/tests/tcg/tricore/test_bmerge.S
@@ -0,0 +1,8 @@
+#include "macros.h"
+.text
+.global _start
+_start:
+    TEST_D_DD_PSW(bmerge, 1, 0x555557f7, 0x00000b80, 0x0000001d, 0x0000ffff)
+
+    TEST_PASSFAIL
+
-- 
2.20.1



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

* [PULL 14/29] tests/tcg/tricore: Add clz test
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (12 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 13/29] tests/tcg/tricore: Add bmerge test Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 15/29] tests/tcg/tricore: Add dvstep test Alex Bennée
                   ` (16 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Bastian Koppelmann, Alex Bennée, qemu-devel

From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

[AJB: dropped duplicate Makefile]

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210305170045.869437-9-kbastian@mail.uni-paderborn.de>
Message-Id: <20210512102051.12134-19-alex.bennee@linaro.org>

diff --git a/tests/tcg/tricore/Makefile.softmmu-target b/tests/tcg/tricore/Makefile.softmmu-target
index de6a2cc88e..a9b81545e2 100644
--- a/tests/tcg/tricore/Makefile.softmmu-target
+++ b/tests/tcg/tricore/Makefile.softmmu-target
@@ -5,6 +5,7 @@ ASFLAGS =
 
 TESTS += test_abs.tst
 TESTS += test_bmerge.tst
+TESTS += test_clz.tst
 
 QEMU_OPTS += -M tricore_testboard -nographic -kernel
 
diff --git a/tests/tcg/tricore/test_clz.S b/tests/tcg/tricore/test_clz.S
new file mode 100644
index 0000000000..e03835f123
--- /dev/null
+++ b/tests/tcg/tricore/test_clz.S
@@ -0,0 +1,9 @@
+#include "macros.h"
+.text
+.global _start
+_start:
+    TEST_D_D(cls.h, 1, 0x0, 0x6db17976)
+    TEST_D_D(cls.h, 2, 0x000f000f, 0x0)
+
+    TEST_PASSFAIL
+
-- 
2.20.1



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

* [PULL 15/29] tests/tcg/tricore: Add dvstep test
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (13 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 14/29] tests/tcg/tricore: Add clz test Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 16/29] tests/tcg/tricore: Add fadd test Alex Bennée
                   ` (15 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Bastian Koppelmann, Alex Bennée, qemu-devel

From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210305170045.869437-10-kbastian@mail.uni-paderborn.de>
Message-Id: <20210512102051.12134-20-alex.bennee@linaro.org>

diff --git a/tests/tcg/tricore/macros.h b/tests/tcg/tricore/macros.h
index 52aa936c56..59b4b9a352 100644
--- a/tests/tcg/tricore/macros.h
+++ b/tests/tcg/tricore/macros.h
@@ -19,6 +19,18 @@
 
 #define DREG_DEV_ADDR %a15
 
+#define EREG_RS1 %e6
+#define EREG_RS1_LO %d6
+#define EREG_RS1_HI %d7
+#define EREG_RS2 %e8
+#define EREG_RS2_LO %d8
+#define EREG_RS2_HI %d9
+#define EREG_CALC_RESULT %e8
+#define EREG_CALC_RESULT_HI %d9
+#define EREG_CALC_RESULT_LO %d8
+#define EREG_CORRECT_RESULT_LO %d0
+#define EREG_CORRECT_RESULT_HI %d1
+
 /* Test case wrappers */
 #define TEST_CASE(num, testreg, correct, code...) \
 test_ ## num:                                     \
@@ -27,6 +39,15 @@ test_ ## num:                                     \
     mov DREG_TEST_NUM, num;                       \
     jne testreg, DREG_CORRECT_RESULT, fail        \
 
+#define TEST_CASE_E(num, correct_lo, correct_hi, code...)  \
+test_ ## num:                                              \
+    code;                                                  \
+    mov DREG_TEST_NUM, num;                                \
+    LI(EREG_CORRECT_RESULT_LO, correct_lo)                 \
+    jne EREG_CALC_RESULT_LO, EREG_CORRECT_RESULT_LO, fail; \
+    LI(EREG_CORRECT_RESULT_HI, correct_hi)                 \
+    jne EREG_CALC_RESULT_HI, EREG_CORRECT_RESULT_HI, fail;
+
 #define TEST_CASE_PSW(num, testreg, correct, correct_psw, code...) \
 test_ ## num:                                                      \
     code;                                                          \
@@ -57,7 +78,13 @@ test_ ## num:                                                      \
     insn DREG_CALC_RESULT, DREG_RS1, DREG_RS2;          \
     )
 
-
+#define TEST_E_ED(insn, num, res_hi, res_lo, rs1_hi, rs1_lo, rs2) \
+    TEST_CASE_E(num, res_lo, res_hi,                              \
+    LI(EREG_RS1_LO, rs1_lo);                                      \
+    LI(EREG_RS1_HI, rs1_hi);                                      \
+    LI(DREG_RS2, rs2);                                            \
+    insn EREG_CALC_RESULT, EREG_RS1, DREG_RS2;                    \
+    )
 
 /* Pass/Fail handling part */
 #define TEST_PASSFAIL                       \
diff --git a/tests/tcg/tricore/Makefile.softmmu-target b/tests/tcg/tricore/Makefile.softmmu-target
index a9b81545e2..799b51191e 100644
--- a/tests/tcg/tricore/Makefile.softmmu-target
+++ b/tests/tcg/tricore/Makefile.softmmu-target
@@ -6,6 +6,7 @@ ASFLAGS =
 TESTS += test_abs.tst
 TESTS += test_bmerge.tst
 TESTS += test_clz.tst
+TESTS += test_dvstep.tst
 
 QEMU_OPTS += -M tricore_testboard -nographic -kernel
 
diff --git a/tests/tcg/tricore/test_dvstep.S b/tests/tcg/tricore/test_dvstep.S
new file mode 100644
index 0000000000..858dbc62dd
--- /dev/null
+++ b/tests/tcg/tricore/test_dvstep.S
@@ -0,0 +1,15 @@
+#include "macros.h"
+.text
+.global _start
+_start:
+    #                              Result                   RS1            RS2
+    TEST_E_ED(dvstep,   1, 0x000001ff, 0xfffe5cff, 0x00000001, 0xfffffe5c, 0x0)
+    TEST_E_ED(dvstep,   2, 0x00000000, 0x000000ff, 0x00000000, 0x00000000, 0x0)
+    TEST_E_ED(dvstep,   3, 0x0000f000, 0x000000fd, 0x010000f0, 0x00000000, 0x0)
+    TEST_E_ED(dvstep,   4, 0xfffff000, 0x00000000, 0x7ffffff0, 0x00000000, 0x0)
+    TEST_E_ED(dvstep.u, 5, 0xffffff00, 0x100008ff, 0xffffffff, 0x00100008, 0x0)
+    TEST_E_ED(dvstep.u, 6, 0x00000100, 0x00000000, 0x08000001, 0x00000000, \
+                           0xffffff2d)
+
+    TEST_PASSFAIL
+
-- 
2.20.1



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

* [PULL 16/29] tests/tcg/tricore: Add fadd test
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (14 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 15/29] tests/tcg/tricore: Add dvstep test Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 17/29] tests/tcg/tricore: Add fmul test Alex Bennée
                   ` (14 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Bastian Koppelmann, Alex Bennée, qemu-devel

From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210305170045.869437-11-kbastian@mail.uni-paderborn.de>
Message-Id: <20210512102051.12134-21-alex.bennee@linaro.org>

diff --git a/tests/tcg/tricore/Makefile.softmmu-target b/tests/tcg/tricore/Makefile.softmmu-target
index 799b51191e..e7adb16af9 100644
--- a/tests/tcg/tricore/Makefile.softmmu-target
+++ b/tests/tcg/tricore/Makefile.softmmu-target
@@ -7,6 +7,7 @@ TESTS += test_abs.tst
 TESTS += test_bmerge.tst
 TESTS += test_clz.tst
 TESTS += test_dvstep.tst
+TESTS += test_fadd.tst
 
 QEMU_OPTS += -M tricore_testboard -nographic -kernel
 
diff --git a/tests/tcg/tricore/test_fadd.S b/tests/tcg/tricore/test_fadd.S
new file mode 100644
index 0000000000..1a65054803
--- /dev/null
+++ b/tests/tcg/tricore/test_fadd.S
@@ -0,0 +1,16 @@
+#include "macros.h"
+.text
+.global _start
+_start:
+    TEST_D_DD_PSW(add.f, 1, 0x7fc00000, 0x00000b80, 0xffffff85, 0x00001234)
+    TEST_D_DD_PSW(add.f, 2, 0xf9c00000, 0x00000b80, 0xf9400000, 0xf9400000)
+    TEST_D_DD_PSW(add.f, 3, 0x8bb858ca, 0x00000b80, 0x8b3858ca, 0x8b3858ca)
+    TEST_D_DD_PSW(add.f, 4, 0x00000000, 0x00000b80, 0x000000ff, 0x00000000)
+    TEST_D_DD_PSW(add.f, 5, 0x7fc00000, 0x00000b80, 0xfffffe52, 0x0a4cf70c)
+    TEST_D_DD_PSW(add.f, 6, 0x9e6d5076, 0x84000b80, 0x9ded50ec, 0x9ded4fff)
+    TEST_D_DD_PSW(add.f, 7, 0x00000000, 0x04000b80, 0x0000e8bd, 0x00000000)
+    TEST_D_DD_PSW(add.f, 8, 0x7fc00000, 0xc4000b80, 0xffad546e, 0xffad546e)
+    TEST_D_DD_PSW(add.f, 9, 0x7fc00000, 0x04000b80, 0xfffe0000, 0x08130000)
+
+    TEST_PASSFAIL
+
-- 
2.20.1



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

* [PULL 17/29] tests/tcg/tricore: Add fmul test
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (15 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 16/29] tests/tcg/tricore: Add fadd test Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 18/29] tests/tcg/tricore: Add ftoi test Alex Bennée
                   ` (13 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Bastian Koppelmann, Alex Bennée, qemu-devel

From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210305170045.869437-12-kbastian@mail.uni-paderborn.de>
Message-Id: <20210512102051.12134-22-alex.bennee@linaro.org>

diff --git a/tests/tcg/tricore/Makefile.softmmu-target b/tests/tcg/tricore/Makefile.softmmu-target
index e7adb16af9..34da1f37de 100644
--- a/tests/tcg/tricore/Makefile.softmmu-target
+++ b/tests/tcg/tricore/Makefile.softmmu-target
@@ -8,6 +8,7 @@ TESTS += test_bmerge.tst
 TESTS += test_clz.tst
 TESTS += test_dvstep.tst
 TESTS += test_fadd.tst
+TESTS += test_fmul.tst
 
 QEMU_OPTS += -M tricore_testboard -nographic -kernel
 
diff --git a/tests/tcg/tricore/test_fmul.S b/tests/tcg/tricore/test_fmul.S
new file mode 100644
index 0000000000..fb1f634b2d
--- /dev/null
+++ b/tests/tcg/tricore/test_fmul.S
@@ -0,0 +1,8 @@
+#include "macros.h"
+.text
+.global _start
+_start:
+    TEST_D_DD_PSW(mul.f, 1, 0x974f4f0a, 0x84000b80, 0x1a0b1980, 0xbcbec42d)
+
+    TEST_PASSFAIL
+
-- 
2.20.1



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

* [PULL 18/29] tests/tcg/tricore: Add ftoi test
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (16 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 17/29] tests/tcg/tricore: Add fmul test Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 19/29] tests/tcg/tricore: Add madd test Alex Bennée
                   ` (12 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Bastian Koppelmann, Alex Bennée, qemu-devel

From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210305170045.869437-13-kbastian@mail.uni-paderborn.de>
Message-Id: <20210512102051.12134-23-alex.bennee@linaro.org>

diff --git a/tests/tcg/tricore/macros.h b/tests/tcg/tricore/macros.h
index 59b4b9a352..e6a41cd1a2 100644
--- a/tests/tcg/tricore/macros.h
+++ b/tests/tcg/tricore/macros.h
@@ -70,6 +70,13 @@ test_ ## num:                                                      \
     insn DREG_CALC_RESULT, DREG_RS1;          \
     )
 
+#define TEST_D_D_PSW(insn, num, result, psw, rs1)     \
+    TEST_CASE_PSW(num, DREG_CALC_RESULT, result, psw, \
+    LI(DREG_RS1, rs1);                                \
+    rstv;                                             \
+    insn DREG_CORRECT_RESULT, DREG_RS1;               \
+    )
+
 #define TEST_D_DD_PSW(insn, num, result, psw, rs1, rs2) \
     TEST_CASE_PSW(num, DREG_CALC_RESULT, result, psw,   \
     LI(DREG_RS1, rs1);                                  \
diff --git a/tests/tcg/tricore/Makefile.softmmu-target b/tests/tcg/tricore/Makefile.softmmu-target
index 34da1f37de..fcc7b6c1c9 100644
--- a/tests/tcg/tricore/Makefile.softmmu-target
+++ b/tests/tcg/tricore/Makefile.softmmu-target
@@ -9,6 +9,7 @@ TESTS += test_clz.tst
 TESTS += test_dvstep.tst
 TESTS += test_fadd.tst
 TESTS += test_fmul.tst
+TESTS += test_ftoi.tst
 
 QEMU_OPTS += -M tricore_testboard -nographic -kernel
 
diff --git a/tests/tcg/tricore/test_ftoi.S b/tests/tcg/tricore/test_ftoi.S
new file mode 100644
index 0000000000..fb4af6b5aa
--- /dev/null
+++ b/tests/tcg/tricore/test_ftoi.S
@@ -0,0 +1,10 @@
+#include "macros.h"
+.text
+.global _start
+_start:
+    TEST_D_D_PSW(ftoi, 1, 0x0, 0x84000b80, 0x05f6e605)
+    TEST_D_D_PSW(ftoi, 2, 0x0, 0x04000b80, 0x00012200)
+    TEST_D_D_PSW(ftoi, 3, 0x0, 0xc4000b80, 0xffffffff)
+
+    TEST_PASSFAIL
+
-- 
2.20.1



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

* [PULL 19/29] tests/tcg/tricore: Add madd test
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (17 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 18/29] tests/tcg/tricore: Add ftoi test Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 20/29] tests/tcg/tricore: Add msub test Alex Bennée
                   ` (11 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Bastian Koppelmann, Alex Bennée, qemu-devel

From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210305170045.869437-14-kbastian@mail.uni-paderborn.de>
Message-Id: <20210512102051.12134-24-alex.bennee@linaro.org>

diff --git a/tests/tcg/tricore/macros.h b/tests/tcg/tricore/macros.h
index e6a41cd1a2..0d76fc403a 100644
--- a/tests/tcg/tricore/macros.h
+++ b/tests/tcg/tricore/macros.h
@@ -9,6 +9,7 @@
 /* Register definitions */
 #define DREG_RS1 %d0
 #define DREG_RS2 %d1
+#define DREG_RS3 %d4
 #define DREG_CALC_RESULT %d1
 #define DREG_CALC_PSW %d2
 #define DREG_CORRECT_PSW %d3
@@ -85,6 +86,23 @@ test_ ## num:                                                      \
     insn DREG_CALC_RESULT, DREG_RS1, DREG_RS2;          \
     )
 
+#define TEST_D_DDD_PSW(insn, num, result, psw, rs1, rs2, rs3) \
+    TEST_CASE_PSW(num, DREG_CALC_RESULT, result, psw,         \
+    LI(DREG_RS1, rs1);                                        \
+    LI(DREG_RS2, rs2);                                        \
+    LI(DREG_RS3, rs3);                                        \
+    rstv;                                                     \
+    insn DREG_CALC_RESULT, DREG_RS1, DREG_RS2, DREG_RS3;      \
+    )
+
+#define TEST_D_DDI_PSW(insn, num, result, psw, rs1, rs2, imm) \
+    TEST_CASE_PSW(num, DREG_CALC_RESULT, result, psw,         \
+    LI(DREG_RS1, rs1);                                        \
+    LI(DREG_RS2, rs2);                                        \
+    rstv;                                                     \
+    insn DREG_CALC_RESULT, DREG_RS1, DREG_RS2, imm;           \
+    )
+
 #define TEST_E_ED(insn, num, res_hi, res_lo, rs1_hi, rs1_lo, rs2) \
     TEST_CASE_E(num, res_lo, res_hi,                              \
     LI(EREG_RS1_LO, rs1_lo);                                      \
diff --git a/tests/tcg/tricore/Makefile.softmmu-target b/tests/tcg/tricore/Makefile.softmmu-target
index fcc7b6c1c9..8de005523e 100644
--- a/tests/tcg/tricore/Makefile.softmmu-target
+++ b/tests/tcg/tricore/Makefile.softmmu-target
@@ -10,6 +10,7 @@ TESTS += test_dvstep.tst
 TESTS += test_fadd.tst
 TESTS += test_fmul.tst
 TESTS += test_ftoi.tst
+TESTS += test_madd.tst
 
 QEMU_OPTS += -M tricore_testboard -nographic -kernel
 
diff --git a/tests/tcg/tricore/test_madd.S b/tests/tcg/tricore/test_madd.S
new file mode 100644
index 0000000000..5d839772bb
--- /dev/null
+++ b/tests/tcg/tricore/test_madd.S
@@ -0,0 +1,11 @@
+#include "macros.h"
+.text
+.global _start
+_start:
+    TEST_D_DDI_PSW(madd,    1, 0x0000fffd, 0x60000b80, 0x0000ffff, 0x7fffffff,2)
+    TEST_D_DDI_PSW(madd,    2, 0xffff7fff, 0x60000b80, 0xffff8001, 0x7fffffff,2)
+    TEST_D_DDD_PSW(madds.u, 3, 0xffffffff, 0x60000b80, 0x00000000, 0x80000000, \
+                             0x80000000)
+
+    TEST_PASSFAIL
+
-- 
2.20.1



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

* [PULL 20/29] tests/tcg/tricore: Add msub test
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (18 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 19/29] tests/tcg/tricore: Add madd test Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 21/29] tests/tcg/tricore: Add muls test Alex Bennée
                   ` (10 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Bastian Koppelmann, Alex Bennée, qemu-devel

From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210305170045.869437-15-kbastian@mail.uni-paderborn.de>
Message-Id: <20210512102051.12134-25-alex.bennee@linaro.org>

diff --git a/tests/tcg/tricore/Makefile.softmmu-target b/tests/tcg/tricore/Makefile.softmmu-target
index 8de005523e..0fe6a86482 100644
--- a/tests/tcg/tricore/Makefile.softmmu-target
+++ b/tests/tcg/tricore/Makefile.softmmu-target
@@ -11,6 +11,7 @@ TESTS += test_fadd.tst
 TESTS += test_fmul.tst
 TESTS += test_ftoi.tst
 TESTS += test_madd.tst
+TESTS += test_msub.tst
 
 QEMU_OPTS += -M tricore_testboard -nographic -kernel
 
diff --git a/tests/tcg/tricore/test_msub.S b/tests/tcg/tricore/test_msub.S
new file mode 100644
index 0000000000..6dee87d99c
--- /dev/null
+++ b/tests/tcg/tricore/test_msub.S
@@ -0,0 +1,9 @@
+#include "macros.h"
+.text
+.global _start
+_start:
+    TEST_D_DDI_PSW(msub, 1, 0xd2fbe5e0, 0x00000b80,0x64003300, 0xff5420d4, -216)
+    TEST_D_DDI_PSW(msub, 2, 0xfffffc10, 0x00000b80,0xfffffe68, 0xfffffffd, -200)
+    TEST_D_DDD_PSW(msubs.u, 3, 0x0, 0x60000b80, 0x1, 0xffffffff, 0xffffffdb)
+    TEST_PASSFAIL
+
-- 
2.20.1



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

* [PULL 21/29] tests/tcg/tricore: Add muls test
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (19 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 20/29] tests/tcg/tricore: Add msub test Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 22/29] tests/tcg/ppc64le: tests for brh/brw/brd Alex Bennée
                   ` (9 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Bastian Koppelmann, Alex Bennée, qemu-devel

From: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210305170045.869437-16-kbastian@mail.uni-paderborn.de>
Message-Id: <20210512102051.12134-26-alex.bennee@linaro.org>

diff --git a/tests/tcg/tricore/Makefile.softmmu-target b/tests/tcg/tricore/Makefile.softmmu-target
index 0fe6a86482..5007c60ce8 100644
--- a/tests/tcg/tricore/Makefile.softmmu-target
+++ b/tests/tcg/tricore/Makefile.softmmu-target
@@ -12,6 +12,7 @@ TESTS += test_fmul.tst
 TESTS += test_ftoi.tst
 TESTS += test_madd.tst
 TESTS += test_msub.tst
+TESTS += test_muls.tst
 
 QEMU_OPTS += -M tricore_testboard -nographic -kernel
 
diff --git a/tests/tcg/tricore/test_muls.S b/tests/tcg/tricore/test_muls.S
new file mode 100644
index 0000000000..ca517556bc
--- /dev/null
+++ b/tests/tcg/tricore/test_muls.S
@@ -0,0 +1,9 @@
+#include "macros.h"
+.text
+.global _start
+_start:
+    TEST_D_DD_PSW(muls.u, 1, 0xffffffff, 0x78000b80, 0x80000001, 0xffffffff)
+    TEST_D_DD_PSW(muls.u, 2, 0xffffffff, 0x60000b80, 0xfffffffe, 0xffffffff)
+
+    TEST_PASSFAIL
+
-- 
2.20.1



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

* [PULL 22/29] tests/tcg/ppc64le: tests for brh/brw/brd
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (20 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 21/29] tests/tcg/tricore: Add muls test Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 23/29] tests/tcg: fix missing return Alex Bennée
                   ` (8 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Alex Bennée, Matheus Ferst, qemu-devel, Fabiano Rosas

From: Matheus Ferst <matheus.ferst@eldorado.org.br>

Tests for Byte-Reverse Halfword, Word and Doubleword

[AJB: tweak to make rules for skip/plugins]

Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Fabiano Rosas <farosas@linux.ibm.com>
Message-Id: <20210423205757.1752480-3-matheus.ferst@eldorado.org.br>
Message-Id: <20210512102051.12134-28-alex.bennee@linaro.org>

diff --git a/tests/tcg/ppc64le/byte_reverse.c b/tests/tcg/ppc64le/byte_reverse.c
new file mode 100644
index 0000000000..53b76fc2e2
--- /dev/null
+++ b/tests/tcg/ppc64le/byte_reverse.c
@@ -0,0 +1,21 @@
+#include <assert.h>
+
+int main(void)
+{
+    unsigned long var;
+
+    var = 0xFEDCBA9876543210;
+    asm("brh %0, %0" : "+r"(var));
+    assert(var == 0xDCFE98BA54761032);
+
+    var = 0xFEDCBA9876543210;
+    asm("brw %0, %0" : "+r"(var));
+    assert(var == 0x98BADCFE10325476);
+
+    var = 0xFEDCBA9876543210;
+    asm("brd %0, %0" : "+r"(var));
+    assert(var == 0x1032547698BADCFE);
+
+    return 0;
+}
+
diff --git a/tests/tcg/ppc64/Makefile.target b/tests/tcg/ppc64/Makefile.target
index 0c6a4585fc..a6a4ddaeca 100644
--- a/tests/tcg/ppc64/Makefile.target
+++ b/tests/tcg/ppc64/Makefile.target
@@ -10,4 +10,17 @@ PPC64_TESTS=bcdsub
 endif
 bcdsub: CFLAGS += -mpower8-vector
 
+PPC64_TESTS += byte_reverse
+ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_POWER10),)
+run-byte_reverse: QEMU_OPTS+=-cpu POWER10
+run-plugin-byte_reverse-with-%: QEMU_OPTS+=-cpu POWER10
+else
+byte_reverse:
+	$(call skip-test, "BUILD of $@", "missing compiler support")
+run-byte_reverse:
+	$(call skip-test, "RUN of byte_reverse", "not built")
+run-plugin-byte_reverse-with-%:
+	$(call skip-test, "RUN of byte_reverse ($*)", "not built")
+endif
+
 TESTS += $(PPC64_TESTS)
diff --git a/tests/tcg/ppc64le/Makefile.target b/tests/tcg/ppc64le/Makefile.target
index 1acfcff94a..c0c14ffbad 100644
--- a/tests/tcg/ppc64le/Makefile.target
+++ b/tests/tcg/ppc64le/Makefile.target
@@ -9,4 +9,17 @@ PPC64LE_TESTS=bcdsub
 endif
 bcdsub: CFLAGS += -mpower8-vector
 
+PPC64LE_TESTS += byte_reverse
+ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_POWER10),)
+run-byte_reverse: QEMU_OPTS+=-cpu POWER10
+run-plugin-byte_reverse-with-%: QEMU_OPTS+=-cpu POWER10
+else
+byte_reverse:
+	$(call skip-test, "BUILD of $@", "missing compiler support")
+run-byte_reverse:
+	$(call skip-test, "RUN of byte_reverse", "not built")
+run-plugin-byte_reverse-with-%:
+	$(call skip-test, "RUN of byte_reverse ($*)", "not built")
+endif
+
 TESTS += $(PPC64LE_TESTS)
-- 
2.20.1



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

* [PULL 23/29] tests/tcg: fix missing return
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (21 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 22/29] tests/tcg/ppc64le: tests for brh/brw/brd Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 24/29] tests/tcg: don't allow clang as a cross compiler Alex Bennée
                   ` (7 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Alex Bennée, qemu-devel, Philippe Mathieu-Daudé

This was picked up when clang built the test.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210512102051.12134-30-alex.bennee@linaro.org>

diff --git a/tests/tcg/multiarch/system/memory.c b/tests/tcg/multiarch/system/memory.c
index eb0ec6f8eb..41c7f66e2e 100644
--- a/tests/tcg/multiarch/system/memory.c
+++ b/tests/tcg/multiarch/system/memory.c
@@ -326,6 +326,7 @@ static bool do_unsigned_test(init_ufn fn)
         fn(i);
         ok = do_unsigned_reads(i);
     }
+    return ok;
 #else
     fn(0);
     return do_unsigned_reads(0);
-- 
2.20.1



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

* [PULL 24/29] tests/tcg: don't allow clang as a cross compiler
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (22 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 23/29] tests/tcg: fix missing return Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 25/29] configure: use cc, not host_cc to set cross_cc for build arch Alex Bennée
                   ` (6 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Alex Bennée, qemu-devel

Currently there are two problems.

The first is clang generates a preamble (that is always executed) to
stack xmm registers. This causes a ILLOP on the x86_64 softmmu tests
as SSE isn't enabled.

The second is the inline assembler in test-i386.c breaks clangs
compiler and I don't know how to fix it. Even with Theodore's patch
series (D5741445-7EFD-4AF1-8DB2-E4AFA93CBB1A@icloud.com) I still get
compiler failures.

For now lets just skip clang and allow it to fall back to the
containers which we know have compilers which work.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
index d13d2bb388..016aa24ce4 100755
--- a/tests/tcg/configure.sh
+++ b/tests/tcg/configure.sh
@@ -105,6 +105,14 @@ for target in $target_list; do
   esac
 
   container_image=
+  container_hosts=
+  container_cross_cc=
+  container_cross_as=
+  container_cross_ld=
+
+  # suppress clang
+  supress_clang=
+
   case $target in
     aarch64-*)
       # We don't have any bigendian build tools so we only use this for AArch64
@@ -142,6 +150,7 @@ for target in $target_list; do
       container_hosts=x86_64
       container_image=fedora-i386-cross
       container_cross_cc=gcc
+      supress_clang=yes
       ;;
     m68k-*)
       container_hosts=x86_64
@@ -213,6 +222,7 @@ for target in $target_list; do
       container_hosts="aarch64 ppc64el x86_64"
       container_image=debian-amd64-cross
       container_cross_cc=x86_64-linux-gnu-gcc
+      supress_clang=yes
       ;;
     xtensa*-softmmu)
       container_hosts=x86_64
@@ -246,71 +256,75 @@ for target in $target_list; do
     if eval test "x\${cross_cc_$i+yes}" != xyes; then
       continue
     fi
+    eval "target_compiler=\${cross_cc_$arch}"
 
-    eval "target_compiler=\${cross_cc_$i}"
-    if ! has $target_compiler; then
-      continue
-    fi
-    write_c_skeleton
-    if ! do_compiler "$target_compiler" $target_compiler_cflags -o $TMPE $TMPC -static ; then
-      # For host systems we might get away with building without -static
-      if ! do_compiler "$target_compiler" $target_compiler_cflags -o $TMPE $TMPC ; then
-        continue
-      fi
-      echo "CROSS_CC_GUEST_STATIC=y" >> $config_target_mak
-    else
-      echo "CROSS_CC_GUEST_STATIC=y" >> $config_target_mak
+    if has "$target_compiler"; then
+        if test "$supress_clang" = yes &&
+                $target_compiler --version | grep -qi "clang"; then
+            got_cross_cc=no
+        else
+            write_c_skeleton
+            if ! do_compiler "$target_compiler" $target_compiler_cflags \
+                 -o $TMPE $TMPC -static ; then
+                # For host systems we might get away with building without -static
+                if do_compiler "$target_compiler" $target_compiler_cflags \
+                               -o $TMPE $TMPC ; then
+                    got_cross_cc=yes
+                    echo "CROSS_CC_GUEST_STATIC=y" >> $config_target_mak
+                    echo "CROSS_CC_GUEST=$target_compiler" >> $config_target_mak
+                fi
+            else
+                got_cross_cc=yes
+                echo "CROSS_CC_GUEST_STATIC=y" >> $config_target_mak
+                echo "CROSS_CC_GUEST=$target_compiler" >> $config_target_mak
+            fi
+
+            # Test for compiler features for optional tests. We only do this
+            # for cross compilers because ensuring the docker containers based
+            # compilers is a requirememt for adding a new test that needs a
+            # compiler feature.
+            case $target in
+                aarch64-*)
+                    if do_compiler "$target_compiler" $target_compiler_cflags \
+                                   -march=armv8.1-a+sve -o $TMPE $TMPC; then
+                        echo "CROSS_CC_HAS_SVE=y" >> $config_target_mak
+                    fi
+                    if do_compiler "$target_compiler" $target_compiler_cflags \
+                                   -march=armv8.3-a -o $TMPE $TMPC; then
+                        echo "CROSS_CC_HAS_ARMV8_3=y" >> $config_target_mak
+                    fi
+                    if do_compiler "$target_compiler" $target_compiler_cflags \
+                                   -mbranch-protection=standard -o $TMPE $TMPC; then
+                        echo "CROSS_CC_HAS_ARMV8_BTI=y" >> $config_target_mak
+                    fi
+                    if do_compiler "$target_compiler" $target_compiler_cflags \
+                                   -march=armv8.5-a+memtag -o $TMPE $TMPC; then
+                        echo "CROSS_CC_HAS_ARMV8_MTE=y" >> $config_target_mak
+                    fi
+                    ;;
+                ppc*)
+                    if do_compiler "$target_compiler" $target_compiler_cflags \
+                                   -mpower8-vector -o $TMPE $TMPC; then
+                        echo "CROSS_CC_HAS_POWER8_VECTOR=y" >> $config_target_mak
+                    fi
+                    ;;
+                i386-linux-user)
+                    if do_compiler "$target_compiler" $target_compiler_cflags \
+                                   -Werror -fno-pie -o $TMPE $TMPC; then
+                        echo "CROSS_CC_HAS_I386_NOPIE=y" >> $config_target_mak
+                    fi
+                    ;;
+            esac
+        fi
     fi
-    echo "CROSS_CC_GUEST=$target_compiler" >> $config_target_mak
 
-    # Test for compiler features for optional tests. We only do this
-    # for cross compilers because ensuring the docker containers based
-    # compilers is a requirememt for adding a new test that needs a
-    # compiler feature.
-    case $target in
-        aarch64-*)
-            if do_compiler "$target_compiler" $target_compiler_cflags \
-               -march=armv8.1-a+sve -o $TMPE $TMPC; then
-                echo "CROSS_CC_HAS_SVE=y" >> $config_target_mak
-            fi
-            if do_compiler "$target_compiler" $target_compiler_cflags \
-               -march=armv8.3-a -o $TMPE $TMPC; then
-                echo "CROSS_CC_HAS_ARMV8_3=y" >> $config_target_mak
+    if test $got_cross_cc = no && test "$container" != no && test -n "$container_image"; then
+        for host in $container_hosts; do
+            if test "$host" = "$ARCH"; then
+                echo "DOCKER_IMAGE=$container_image" >> $config_target_mak
+                echo "DOCKER_CROSS_CC_GUEST=$container_cross_cc" >> $config_target_mak
             fi
-            if do_compiler "$target_compiler" $target_compiler_cflags \
-               -mbranch-protection=standard -o $TMPE $TMPC; then
-                echo "CROSS_CC_HAS_ARMV8_BTI=y" >> $config_target_mak
-            fi
-            if do_compiler "$target_compiler" $target_compiler_cflags \
-               -march=armv8.5-a+memtag -o $TMPE $TMPC; then
-                echo "CROSS_CC_HAS_ARMV8_MTE=y" >> $config_target_mak
-            fi
-        ;;
-        ppc*)
-            if do_compiler "$target_compiler" $target_compiler_cflags \
-               -mpower8-vector -o $TMPE $TMPC; then
-                echo "CROSS_CC_HAS_POWER8_VECTOR=y" >> $config_target_mak
-            fi
-        ;;
-        i386-linux-user)
-            if do_compiler "$target_compiler" $target_compiler_cflags \
-                -Werror -fno-pie -o $TMPE $TMPC; then
-                echo "CROSS_CC_HAS_I386_NOPIE=y" >> $config_target_mak
-            fi
-        ;;
-    esac
-
-    enabled_cross_compilers="$enabled_cross_compilers $target_compiler"
-    got_cross_cc=yes
-    break
+        done
+    fi
   done
-
-  if test $got_cross_cc = no && test "$container" != no && test -n "$container_image"; then
-      for host in $container_hosts; do
-          if test "$host" = "$ARCH"; then
-              echo "DOCKER_IMAGE=$container_image" >> $config_target_mak
-              echo "DOCKER_CROSS_CC_GUEST=$container_cross_cc" >> $config_target_mak
-          fi
-      done
-  fi
 done
-- 
2.20.1



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

* [PULL 25/29] configure: use cc, not host_cc to set cross_cc for build arch
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (23 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 24/29] tests/tcg: don't allow clang as a cross compiler Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 26/29] plugins: Update qemu-plugins.symbols to match qemu-plugins.h Alex Bennée
                   ` (5 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Philippe Mathieu-Daudé, Alex Bennée, qemu-devel

Otherwise you run into hilarity like trying when cross compiling a 32
bit ARM build on a 64 bit system trying to use host_cc to build 32 bit
test cases.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20210512102051.12134-32-alex.bennee@linaro.org>

diff --git a/configure b/configure
index df11c8bad0..9470fff09a 100755
--- a/configure
+++ b/configure
@@ -1651,7 +1651,7 @@ case "$cpu" in
     # No special flags required for other host CPUs
 esac
 
-eval "cross_cc_${cpu}=\$host_cc"
+eval "cross_cc_${cpu}=\$cc"
 cross_cc_vars="$cross_cc_vars cross_cc_${cpu}"
 QEMU_CFLAGS="$CPU_CFLAGS $QEMU_CFLAGS"
 
-- 
2.20.1



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

* [PULL 26/29] plugins: Update qemu-plugins.symbols to match qemu-plugins.h
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (24 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 25/29] configure: use cc, not host_cc to set cross_cc for build arch Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 27/29] plugins: Move all typedef and type declaration to the front of the qemu-plugin.h Alex Bennée
                   ` (4 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Yonggang Luo, Alex Bennée, qemu-devel

From: Yonggang Luo <luoyonggang@gmail.com>

Reorder the function symbols that consistence with qemu-plugins.h

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210318185555.434-2-luoyonggang@gmail.com>
Message-Id: <20210505092259.8202-2-alex.bennee@linaro.org>

diff --git a/plugins/qemu-plugins.symbols b/plugins/qemu-plugins.symbols
index 4bdb381f48..a0ac1df62a 100644
--- a/plugins/qemu-plugins.symbols
+++ b/plugins/qemu-plugins.symbols
@@ -5,35 +5,34 @@
   qemu_plugin_register_vcpu_exit_cb;
   qemu_plugin_register_vcpu_idle_cb;
   qemu_plugin_register_vcpu_resume_cb;
-  qemu_plugin_register_vcpu_insn_exec_cb;
-  qemu_plugin_register_vcpu_insn_exec_inline;
-  qemu_plugin_register_vcpu_mem_cb;
-  qemu_plugin_register_vcpu_mem_haddr_cb;
-  qemu_plugin_register_vcpu_mem_inline;
-  qemu_plugin_ram_addr_from_host;
   qemu_plugin_register_vcpu_tb_trans_cb;
   qemu_plugin_register_vcpu_tb_exec_cb;
   qemu_plugin_register_vcpu_tb_exec_inline;
-  qemu_plugin_register_flush_cb;
-  qemu_plugin_register_vcpu_syscall_cb;
-  qemu_plugin_register_vcpu_syscall_ret_cb;
-  qemu_plugin_register_atexit_cb;
+  qemu_plugin_register_vcpu_insn_exec_cb;
+  qemu_plugin_register_vcpu_insn_exec_inline;
   qemu_plugin_tb_n_insns;
-  qemu_plugin_tb_get_insn;
   qemu_plugin_tb_vaddr;
+  qemu_plugin_tb_get_insn;
   qemu_plugin_insn_data;
   qemu_plugin_insn_size;
   qemu_plugin_insn_vaddr;
   qemu_plugin_insn_haddr;
-  qemu_plugin_insn_disas;
   qemu_plugin_mem_size_shift;
   qemu_plugin_mem_is_sign_extended;
   qemu_plugin_mem_is_big_endian;
   qemu_plugin_mem_is_store;
   qemu_plugin_get_hwaddr;
   qemu_plugin_hwaddr_is_io;
-  qemu_plugin_hwaddr_to_raddr;
+  qemu_plugin_hwaddr_phys_addr;
+  qemu_plugin_hwaddr_device_name;
+  qemu_plugin_register_vcpu_mem_cb;
+  qemu_plugin_register_vcpu_mem_inline;
+  qemu_plugin_register_vcpu_syscall_cb;
+  qemu_plugin_register_vcpu_syscall_ret_cb;
+  qemu_plugin_insn_disas;
   qemu_plugin_vcpu_for_each;
+  qemu_plugin_register_flush_cb;
+  qemu_plugin_register_atexit_cb;
   qemu_plugin_n_vcpus;
   qemu_plugin_n_max_vcpus;
   qemu_plugin_outs;
-- 
2.20.1



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

* [PULL 27/29] plugins: Move all typedef and type declaration to the front of the qemu-plugin.h
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (25 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 26/29] plugins: Update qemu-plugins.symbols to match qemu-plugins.h Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 28/29] plugins/hotblocks: Properly freed the hash table values Alex Bennée
                   ` (3 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Yonggang Luo, Alex Bennée, qemu-devel

From: Yonggang Luo <luoyonggang@gmail.com>

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210318185555.434-3-luoyonggang@gmail.com>
Message-Id: <20210505092259.8202-3-alex.bennee@linaro.org>

diff --git a/include/qemu/qemu-plugin.h b/include/qemu/qemu-plugin.h
index 97cdfd7761..2cb17f3051 100644
--- a/include/qemu/qemu-plugin.h
+++ b/include/qemu/qemu-plugin.h
@@ -81,27 +81,6 @@ typedef struct qemu_info_t {
     };
 } qemu_info_t;
 
-/**
- * qemu_plugin_install() - Install a plugin
- * @id: this plugin's opaque ID
- * @info: a block describing some details about the guest
- * @argc: number of arguments
- * @argv: array of arguments (@argc elements)
- *
- * All plugins must export this symbol which is called when the plugin
- * is first loaded. Calling qemu_plugin_uninstall() from this function
- * is a bug.
- *
- * Note: @info is only live during the call. Copy any information we
- * want to keep. @argv remains valid throughout the lifetime of the
- * loaded plugin.
- *
- * Return: 0 on successful loading, !0 for an error.
- */
-QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id,
-                                           const qemu_info_t *info,
-                                           int argc, char **argv);
-
 /**
  * typedef qemu_plugin_simple_cb_t - simple callback
  * @id: the unique qemu_plugin_id_t
@@ -135,6 +114,98 @@ typedef void (*qemu_plugin_vcpu_simple_cb_t)(qemu_plugin_id_t id,
 typedef void (*qemu_plugin_vcpu_udata_cb_t)(unsigned int vcpu_index,
                                             void *userdata);
 
+/** struct qemu_plugin_tb - Opaque handle for a translation block */
+struct qemu_plugin_tb;
+/** struct qemu_plugin_insn - Opaque handle for a translated instruction */
+struct qemu_plugin_insn;
+
+/**
+ * enum qemu_plugin_cb_flags - type of callback
+ *
+ * @QEMU_PLUGIN_CB_NO_REGS: callback does not access the CPU's regs
+ * @QEMU_PLUGIN_CB_R_REGS: callback reads the CPU's regs
+ * @QEMU_PLUGIN_CB_RW_REGS: callback reads and writes the CPU's regs
+ *
+ * Note: currently unused, plugins cannot read or change system
+ * register state.
+ */
+enum qemu_plugin_cb_flags {
+    QEMU_PLUGIN_CB_NO_REGS,
+    QEMU_PLUGIN_CB_R_REGS,
+    QEMU_PLUGIN_CB_RW_REGS,
+};
+
+enum qemu_plugin_mem_rw {
+    QEMU_PLUGIN_MEM_R = 1,
+    QEMU_PLUGIN_MEM_W,
+    QEMU_PLUGIN_MEM_RW,
+};
+
+/**
+ * typedef qemu_plugin_vcpu_tb_trans_cb_t - translation callback
+ * @id: unique plugin id
+ * @tb: opaque handle used for querying and instrumenting a block.
+ */
+typedef void (*qemu_plugin_vcpu_tb_trans_cb_t)(qemu_plugin_id_t id,
+                                               struct qemu_plugin_tb *tb);
+
+/**
+ * enum qemu_plugin_op - describes an inline op
+ *
+ * @QEMU_PLUGIN_INLINE_ADD_U64: add an immediate value uint64_t
+ *
+ * Note: currently only a single inline op is supported.
+ */
+
+enum qemu_plugin_op {
+    QEMU_PLUGIN_INLINE_ADD_U64,
+};
+
+/**
+ * typedef qemu_plugin_meminfo_t - opaque memory transaction handle
+ *
+ * This can be further queried using the qemu_plugin_mem_* query
+ * functions.
+ */
+typedef uint32_t qemu_plugin_meminfo_t;
+/** struct qemu_plugin_hwaddr - opaque hw address handle */
+struct qemu_plugin_hwaddr;
+
+typedef void
+(*qemu_plugin_vcpu_mem_cb_t)(unsigned int vcpu_index,
+                             qemu_plugin_meminfo_t info, uint64_t vaddr,
+                             void *userdata);
+
+typedef void
+(*qemu_plugin_vcpu_syscall_cb_t)(qemu_plugin_id_t id, unsigned int vcpu_index,
+                                 int64_t num, uint64_t a1, uint64_t a2,
+                                 uint64_t a3, uint64_t a4, uint64_t a5,
+                                 uint64_t a6, uint64_t a7, uint64_t a8);
+typedef void
+(*qemu_plugin_vcpu_syscall_ret_cb_t)(qemu_plugin_id_t id, unsigned int vcpu_idx,
+                                     int64_t num, int64_t ret);
+
+/**
+ * qemu_plugin_install() - Install a plugin
+ * @id: this plugin's opaque ID
+ * @info: a block describing some details about the guest
+ * @argc: number of arguments
+ * @argv: array of arguments (@argc elements)
+ *
+ * All plugins must export this symbol which is called when the plugin
+ * is first loaded. Calling qemu_plugin_uninstall() from this function
+ * is a bug.
+ *
+ * Note: @info is only live during the call. Copy any information we
+ * want to keep. @argv remains valid throughout the lifetime of the
+ * loaded plugin.
+ *
+ * Return: 0 on successful loading, !0 for an error.
+ */
+QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id,
+                                           const qemu_info_t *info,
+                                           int argc, char **argv);
+
 /**
  * qemu_plugin_uninstall() - Uninstall a plugin
  * @id: this plugin's opaque ID
@@ -205,41 +276,6 @@ void qemu_plugin_register_vcpu_idle_cb(qemu_plugin_id_t id,
 void qemu_plugin_register_vcpu_resume_cb(qemu_plugin_id_t id,
                                          qemu_plugin_vcpu_simple_cb_t cb);
 
-/** struct qemu_plugin_tb - Opaque handle for a translation block */
-struct qemu_plugin_tb;
-/** struct qemu_plugin_insn - Opaque handle for a translated instruction */
-struct qemu_plugin_insn;
-
-/**
- * enum qemu_plugin_cb_flags - type of callback
- *
- * @QEMU_PLUGIN_CB_NO_REGS: callback does not access the CPU's regs
- * @QEMU_PLUGIN_CB_R_REGS: callback reads the CPU's regs
- * @QEMU_PLUGIN_CB_RW_REGS: callback reads and writes the CPU's regs
- *
- * Note: currently unused, plugins cannot read or change system
- * register state.
- */
-enum qemu_plugin_cb_flags {
-    QEMU_PLUGIN_CB_NO_REGS,
-    QEMU_PLUGIN_CB_R_REGS,
-    QEMU_PLUGIN_CB_RW_REGS,
-};
-
-enum qemu_plugin_mem_rw {
-    QEMU_PLUGIN_MEM_R = 1,
-    QEMU_PLUGIN_MEM_W,
-    QEMU_PLUGIN_MEM_RW,
-};
-
-/**
- * typedef qemu_plugin_vcpu_tb_trans_cb_t - translation callback
- * @id: unique plugin id
- * @tb: opaque handle used for querying and instrumenting a block.
- */
-typedef void (*qemu_plugin_vcpu_tb_trans_cb_t)(qemu_plugin_id_t id,
-                                               struct qemu_plugin_tb *tb);
-
 /**
  * qemu_plugin_register_vcpu_tb_trans_cb() - register a translate cb
  * @id: plugin ID
@@ -269,18 +305,6 @@ void qemu_plugin_register_vcpu_tb_exec_cb(struct qemu_plugin_tb *tb,
                                           enum qemu_plugin_cb_flags flags,
                                           void *userdata);
 
-/**
- * enum qemu_plugin_op - describes an inline op
- *
- * @QEMU_PLUGIN_INLINE_ADD_U64: add an immediate value uint64_t
- *
- * Note: currently only a single inline op is supported.
- */
-
-enum qemu_plugin_op {
-    QEMU_PLUGIN_INLINE_ADD_U64,
-};
-
 /**
  * qemu_plugin_register_vcpu_tb_exec_inline() - execution inline op
  * @tb: the opaque qemu_plugin_tb handle for the translation
@@ -393,16 +417,6 @@ uint64_t qemu_plugin_insn_vaddr(const struct qemu_plugin_insn *insn);
  */
 void *qemu_plugin_insn_haddr(const struct qemu_plugin_insn *insn);
 
-/**
- * typedef qemu_plugin_meminfo_t - opaque memory transaction handle
- *
- * This can be further queried using the qemu_plugin_mem_* query
- * functions.
- */
-typedef uint32_t qemu_plugin_meminfo_t;
-/** struct qemu_plugin_hwaddr - opaque hw address handle */
-struct qemu_plugin_hwaddr;
-
 /**
  * qemu_plugin_mem_size_shift() - get size of access
  * @info: opaque memory transaction handle
@@ -480,11 +494,6 @@ uint64_t qemu_plugin_hwaddr_phys_addr(const struct qemu_plugin_hwaddr *haddr);
  */
 const char *qemu_plugin_hwaddr_device_name(const struct qemu_plugin_hwaddr *h);
 
-typedef void
-(*qemu_plugin_vcpu_mem_cb_t)(unsigned int vcpu_index,
-                             qemu_plugin_meminfo_t info, uint64_t vaddr,
-                             void *userdata);
-
 void qemu_plugin_register_vcpu_mem_cb(struct qemu_plugin_insn *insn,
                                       qemu_plugin_vcpu_mem_cb_t cb,
                                       enum qemu_plugin_cb_flags flags,
@@ -496,21 +505,9 @@ void qemu_plugin_register_vcpu_mem_inline(struct qemu_plugin_insn *insn,
                                           enum qemu_plugin_op op, void *ptr,
                                           uint64_t imm);
 
-
-
-typedef void
-(*qemu_plugin_vcpu_syscall_cb_t)(qemu_plugin_id_t id, unsigned int vcpu_index,
-                                 int64_t num, uint64_t a1, uint64_t a2,
-                                 uint64_t a3, uint64_t a4, uint64_t a5,
-                                 uint64_t a6, uint64_t a7, uint64_t a8);
-
 void qemu_plugin_register_vcpu_syscall_cb(qemu_plugin_id_t id,
                                           qemu_plugin_vcpu_syscall_cb_t cb);
 
-typedef void
-(*qemu_plugin_vcpu_syscall_ret_cb_t)(qemu_plugin_id_t id, unsigned int vcpu_idx,
-                                     int64_t num, int64_t ret);
-
 void
 qemu_plugin_register_vcpu_syscall_ret_cb(qemu_plugin_id_t id,
                                          qemu_plugin_vcpu_syscall_ret_cb_t cb);
-- 
2.20.1



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

* [PULL 28/29] plugins/hotblocks: Properly freed the hash table values
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (26 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 27/29] plugins: Move all typedef and type declaration to the front of the qemu-plugin.h Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 16:10 ` [PULL 29/29] plugins/hotpages: " Alex Bennée
                   ` (2 subsequent siblings)
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Mahmoud Mandour, Alex Bennée, qemu-devel

From: Mahmoud Mandour <ma.mandourr@gmail.com>

Freed the values stored in the hash table ``hotblocks``
returned by ``g_hash_table_get_values()`` by freeing the sorted
list and destroyed the hash table afterward.

Signed-off-by: Mahmoud Mandour <ma.mandourr@gmail.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210422005043.3569-2-ma.mandourr@gmail.com>
Message-Id: <20210505092259.8202-4-alex.bennee@linaro.org>

diff --git a/contrib/plugins/hotblocks.c b/contrib/plugins/hotblocks.c
index 4b08340143..64692c0670 100644
--- a/contrib/plugins/hotblocks.c
+++ b/contrib/plugins/hotblocks.c
@@ -68,10 +68,11 @@ static void plugin_exit(qemu_plugin_id_t id, void *p)
                                    rec->insns, rec->exec_count);
         }
 
-        g_list_free(it);
+        g_list_free_full(it, g_free);
         g_mutex_unlock(&lock);
     }
 
+    g_hash_table_destroy(hotblocks);
     qemu_plugin_outs(report->str);
 }
 
-- 
2.20.1



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

* [PULL 29/29] plugins/hotpages: Properly freed the hash table values
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (27 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 28/29] plugins/hotblocks: Properly freed the hash table values Alex Bennée
@ 2021-05-17 16:10 ` Alex Bennée
  2021-05-17 17:09 ` [PULL 00/29] testing and plugin updates no-reply
  2021-05-17 17:37 ` Alex Bennée
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 16:10 UTC (permalink / raw)
  To: peter.maydell; +Cc: Mahmoud Mandour, Alex Bennée, qemu-devel

From: Mahmoud Mandour <ma.mandourr@gmail.com>

Allocated ``pages`` hash table through ``g_hash_table_new_full`` to
add a freeing function & destroyed the hash table on exit.

Signed-off-by: Mahmoud Mandour <ma.mandourr@gmail.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210422005043.3569-3-ma.mandourr@gmail.com>
Message-Id: <20210505092259.8202-5-alex.bennee@linaro.org>

diff --git a/contrib/plugins/hotpages.c b/contrib/plugins/hotpages.c
index bf53267532..9cf7f02c77 100644
--- a/contrib/plugins/hotpages.c
+++ b/contrib/plugins/hotpages.c
@@ -97,13 +97,14 @@ static void plugin_exit(qemu_plugin_id_t id, void *p)
         g_list_free(it);
     }
 
+    g_hash_table_destroy(pages);
     qemu_plugin_outs(report->str);
 }
 
 static void plugin_init(void)
 {
     page_mask = (page_size - 1);
-    pages = g_hash_table_new(NULL, g_direct_equal);
+    pages = g_hash_table_new_full(NULL, g_direct_equal, NULL, g_free);
 }
 
 static void vcpu_haddr(unsigned int cpu_index, qemu_plugin_meminfo_t meminfo,
-- 
2.20.1



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

* Re: [PULL 00/29] testing and plugin updates
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (28 preceding siblings ...)
  2021-05-17 16:10 ` [PULL 29/29] plugins/hotpages: " Alex Bennée
@ 2021-05-17 17:09 ` no-reply
  2021-05-17 17:37 ` Alex Bennée
  30 siblings, 0 replies; 32+ messages in thread
From: no-reply @ 2021-05-17 17:09 UTC (permalink / raw)
  To: alex.bennee; +Cc: peter.maydell, alex.bennee, qemu-devel

Patchew URL: https://patchew.org/QEMU/20210517161022.13984-1-alex.bennee@linaro.org/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20210517161022.13984-1-alex.bennee@linaro.org
Subject: [PULL 00/29] testing and plugin updates

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
   6005ee0..32de74a  master     -> master
 - [tag update]      patchew/20210512171550.476130-1-thuth@redhat.com -> patchew/20210512171550.476130-1-thuth@redhat.com
 - [tag update]      patchew/20210517064428.16223-1-vsementsov@virtuozzo.com -> patchew/20210517064428.16223-1-vsementsov@virtuozzo.com
 - [tag update]      patchew/20210517151702.109066-1-sgarzare@redhat.com -> patchew/20210517151702.109066-1-sgarzare@redhat.com
 * [new tag]         patchew/20210517161022.13984-1-alex.bennee@linaro.org -> patchew/20210517161022.13984-1-alex.bennee@linaro.org
Switched to a new branch 'test'
5bbea9e plugins/hotpages: Properly freed the hash table values
f6787e3 plugins/hotblocks: Properly freed the hash table values
d9de308 plugins: Move all typedef and type declaration to the front of the qemu-plugin.h
25de4e5 plugins: Update qemu-plugins.symbols to match qemu-plugins.h
4620d1d configure: use cc, not host_cc to set cross_cc for build arch
7a853fe tests/tcg: don't allow clang as a cross compiler
74edf7c tests/tcg: fix missing return
c58c3f3 tests/tcg/ppc64le: tests for brh/brw/brd
fa99f89 tests/tcg/tricore: Add muls test
2dca1b2 tests/tcg/tricore: Add msub test
48ca02e tests/tcg/tricore: Add madd test
d72dd15 tests/tcg/tricore: Add ftoi test
11e0994 tests/tcg/tricore: Add fmul test
942377c tests/tcg/tricore: Add fadd test
146eaaf tests/tcg/tricore: Add dvstep test
c83ac5e tests/tcg/tricore: Add clz test
e906f5e tests/tcg/tricore: Add bmerge test
8b084e7 tests/tcg/tricore: Add macros to create tests and first test 'abs'
5cb7078 configure: Emit HOST_CC to config-host.mak
01dc32f tests/tcg/tricore: Add build infrastructure
0969546 hw/tricore: Add testdevice for tests in tests/tcg/
320b75d tests/tcg: Run timeout cmds using --foreground
383cdb7 tests/docker: Added libbpf library to the docker files.
1b533b2 tests/tcg: Use Hexagon Docker image
87f4321 docker: Add Hexagon image
674981a tests/docker: add "fetch" sub-command
4b15453 tests/docker: allow "update" to add the current user
b08a0a3 tests/docker: make executable an optional argument to "update"
45691a9 tests/docker: fix copying of executable in "update"

=== OUTPUT BEGIN ===
1/29 Checking commit 45691a9f1a3c (tests/docker: fix copying of executable in "update")
2/29 Checking commit b08a0a3952e8 (tests/docker: make executable an optional argument to "update")
3/29 Checking commit 4b154532b5ec (tests/docker: allow "update" to add the current user)
4/29 Checking commit 674981a2a08e (tests/docker: add "fetch" sub-command)
5/29 Checking commit 87f4321d401b (docker: Add Hexagon image)
WARNING: line over 80 characters
#207: FILE: tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh:63:
+    -DCMAKE_ASM_FLAGS="-G0 -mlong-calls -fno-pic --target=hexagon-unknown-linux-musl " \

ERROR: line over 90 characters
#234: FILE: tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh:90:
+    CROSS_CFLAGS="-G0 -O0 -mv65 -fno-builtin -fno-rounding-math --target=hexagon-unknown-linux-musl" \

ERROR: line over 90 characters
#271: FILE: tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh:127:
+    CFLAGS="-G0 -O0 -mv65 -fno-builtin -fno-rounding-math --target=hexagon-unknown-linux-musl" \

total: 2 errors, 1 warnings, 222 lines checked

Patch 5/29 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

6/29 Checking commit 1b533b2ebadf (tests/tcg: Use Hexagon Docker image)
7/29 Checking commit 383cdb76706a (tests/docker: Added libbpf library to the docker files.)
8/29 Checking commit 320b75d22d97 (tests/tcg: Run timeout cmds using --foreground)
9/29 Checking commit 09695469a9b9 (hw/tricore: Add testdevice for tests in tests/tcg/)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#70: 
new file mode 100644

total: 0 errors, 1 warnings, 152 lines checked

Patch 9/29 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
10/29 Checking commit 01dc32ff4753 (tests/tcg/tricore: Add build infrastructure)
11/29 Checking commit 5cb7078ea4eb (configure: Emit HOST_CC to config-host.mak)
12/29 Checking commit 8b084e7f9c2f (tests/tcg/tricore: Add macros to create tests and first test 'abs')
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#64: 
new file mode 100644

ERROR: Macros with multiple statements should be enclosed in a do - while loop
#70: FILE: tests/tcg/tricore/macros.h:2:
+#define LI(reg, val)           \
+    mov.u reg, lo:val;         \
+    movh DREG_TEMP_LI, up:val; \
+    or reg, reg, DREG_TEMP_LI; \
+

ERROR: spaces required around that ':' (ctx:VxV)
#71: FILE: tests/tcg/tricore/macros.h:3:
+    mov.u reg, lo:val;         \
                  ^

ERROR: spaces required around that ':' (ctx:VxV)
#72: FILE: tests/tcg/tricore/macros.h:4:
+    movh DREG_TEMP_LI, up:val; \
                          ^

ERROR: spaces required around that '%' (ctx:WxV)
#78: FILE: tests/tcg/tricore/macros.h:10:
+#define DREG_RS1 %d0
                  ^

ERROR: Macros with complex values should be enclosed in parenthesis
#78: FILE: tests/tcg/tricore/macros.h:10:
+#define DREG_RS1 %d0

ERROR: spaces required around that '%' (ctx:WxV)
#79: FILE: tests/tcg/tricore/macros.h:11:
+#define DREG_CALC_RESULT %d1
                          ^

ERROR: Macros with complex values should be enclosed in parenthesis
#79: FILE: tests/tcg/tricore/macros.h:11:
+#define DREG_CALC_RESULT %d1

ERROR: spaces required around that '%' (ctx:WxV)
#80: FILE: tests/tcg/tricore/macros.h:12:
+#define DREG_TEMP_LI %d10
                      ^

ERROR: Macros with complex values should be enclosed in parenthesis
#80: FILE: tests/tcg/tricore/macros.h:12:
+#define DREG_TEMP_LI %d10

ERROR: spaces required around that '%' (ctx:WxV)
#81: FILE: tests/tcg/tricore/macros.h:13:
+#define DREG_TEMP %d11
                   ^

ERROR: Macros with complex values should be enclosed in parenthesis
#81: FILE: tests/tcg/tricore/macros.h:13:
+#define DREG_TEMP %d11

ERROR: spaces required around that '%' (ctx:WxV)
#82: FILE: tests/tcg/tricore/macros.h:14:
+#define DREG_TEST_NUM %d14
                       ^

ERROR: Macros with complex values should be enclosed in parenthesis
#82: FILE: tests/tcg/tricore/macros.h:14:
+#define DREG_TEST_NUM %d14

ERROR: spaces required around that '%' (ctx:WxV)
#83: FILE: tests/tcg/tricore/macros.h:15:
+#define DREG_CORRECT_RESULT %d15
                             ^

ERROR: Macros with complex values should be enclosed in parenthesis
#83: FILE: tests/tcg/tricore/macros.h:15:
+#define DREG_CORRECT_RESULT %d15

ERROR: spaces required around that '%' (ctx:WxV)
#85: FILE: tests/tcg/tricore/macros.h:17:
+#define DREG_DEV_ADDR %a15
                       ^

ERROR: Macros with complex values should be enclosed in parenthesis
#85: FILE: tests/tcg/tricore/macros.h:17:
+#define DREG_DEV_ADDR %a15

ERROR: Macros with multiple statements should be enclosed in a do - while loop
#88: FILE: tests/tcg/tricore/macros.h:20:
+#define TEST_CASE(num, testreg, correct, code...) \
+test_ ## num:                                     \
+    code;                                         \
+    LI(DREG_CORRECT_RESULT, correct)              \
+    mov DREG_TEST_NUM, num;                       \
+    jne testreg, DREG_CORRECT_RESULT, fail        \
+

ERROR: spaces required around that ':' (ctx:VxE)
#89: FILE: tests/tcg/tricore/macros.h:21:
+test_ ## num:                                     \
             ^

WARNING: Block comments use a leading /* on a separate line
#95: FILE: tests/tcg/tricore/macros.h:27:
+/* Actual test case type

ERROR: Macros with multiple statements should be enclosed in a do - while loop
#107: FILE: tests/tcg/tricore/macros.h:39:
+#define TEST_PASSFAIL                       \
+        j pass;                             \
+fail:                                       \
+        LI(DREG_TEMP, TESTDEV_ADDR)         \
+        mov.a DREG_DEV_ADDR, DREG_TEMP;     \
+        st.w [DREG_DEV_ADDR], DREG_TEST_NUM;\
+        debug;                              \
+        j fail;                             \
+pass:                                       \
+        LI(DREG_TEMP, TESTDEV_ADDR)         \
+        mov.a DREG_DEV_ADDR, DREG_TEMP;     \
+        mov DREG_TEST_NUM, 0;               \
+        st.w [DREG_DEV_ADDR], DREG_TEST_NUM;\
+        debug;                              \
+        j pass;

ERROR: space prohibited before open square bracket '['
#112: FILE: tests/tcg/tricore/macros.h:44:
+        st.w [DREG_DEV_ADDR], DREG_TEST_NUM;\

ERROR: space prohibited before open square bracket '['
#119: FILE: tests/tcg/tricore/macros.h:51:
+        st.w [DREG_DEV_ADDR], DREG_TEST_NUM;\

total: 22 errors, 2 warnings, 80 lines checked

Patch 12/29 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

13/29 Checking commit e906f5eda6d3 (tests/tcg/tricore: Add bmerge test)
ERROR: spaces required around that '%' (ctx:WxV)
#40: FILE: tests/tcg/tricore/macros.h:11:
+#define DREG_RS2 %d1
                  ^

ERROR: Macros with complex values should be enclosed in parenthesis
#40: FILE: tests/tcg/tricore/macros.h:11:
+#define DREG_RS2 %d1

ERROR: spaces required around that '%' (ctx:WxV)
#42: FILE: tests/tcg/tricore/macros.h:13:
+#define DREG_CALC_PSW %d2
                       ^

ERROR: Macros with complex values should be enclosed in parenthesis
#42: FILE: tests/tcg/tricore/macros.h:13:
+#define DREG_CALC_PSW %d2

ERROR: spaces required around that '%' (ctx:WxV)
#43: FILE: tests/tcg/tricore/macros.h:14:
+#define DREG_CORRECT_PSW %d3
                          ^

ERROR: Macros with complex values should be enclosed in parenthesis
#43: FILE: tests/tcg/tricore/macros.h:14:
+#define DREG_CORRECT_PSW %d3

ERROR: spaces required around that ':' (ctx:VxE)
#52: FILE: tests/tcg/tricore/macros.h:31:
+test_ ## num:                                                      \
             ^

WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#83: 
new file mode 100644

total: 7 errors, 1 warnings, 58 lines checked

Patch 13/29 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

14/29 Checking commit c83ac5e40e8c (tests/tcg/tricore: Add clz test)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#34: 
new file mode 100644

total: 0 errors, 1 warnings, 16 lines checked

Patch 14/29 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
15/29 Checking commit 146eaafb8d84 (tests/tcg/tricore: Add dvstep test)
ERROR: spaces required around that '%' (ctx:WxV)
#40: FILE: tests/tcg/tricore/macros.h:22:
+#define EREG_RS1 %e6
                  ^

ERROR: Macros with complex values should be enclosed in parenthesis
#40: FILE: tests/tcg/tricore/macros.h:22:
+#define EREG_RS1 %e6

ERROR: spaces required around that '%' (ctx:WxV)
#41: FILE: tests/tcg/tricore/macros.h:23:
+#define EREG_RS1_LO %d6
                     ^

ERROR: Macros with complex values should be enclosed in parenthesis
#41: FILE: tests/tcg/tricore/macros.h:23:
+#define EREG_RS1_LO %d6

ERROR: spaces required around that '%' (ctx:WxV)
#42: FILE: tests/tcg/tricore/macros.h:24:
+#define EREG_RS1_HI %d7
                     ^

ERROR: Macros with complex values should be enclosed in parenthesis
#42: FILE: tests/tcg/tricore/macros.h:24:
+#define EREG_RS1_HI %d7

ERROR: spaces required around that '%' (ctx:WxV)
#43: FILE: tests/tcg/tricore/macros.h:25:
+#define EREG_RS2 %e8
                  ^

ERROR: Macros with complex values should be enclosed in parenthesis
#43: FILE: tests/tcg/tricore/macros.h:25:
+#define EREG_RS2 %e8

ERROR: spaces required around that '%' (ctx:WxV)
#44: FILE: tests/tcg/tricore/macros.h:26:
+#define EREG_RS2_LO %d8
                     ^

ERROR: Macros with complex values should be enclosed in parenthesis
#44: FILE: tests/tcg/tricore/macros.h:26:
+#define EREG_RS2_LO %d8

ERROR: spaces required around that '%' (ctx:WxV)
#45: FILE: tests/tcg/tricore/macros.h:27:
+#define EREG_RS2_HI %d9
                     ^

ERROR: Macros with complex values should be enclosed in parenthesis
#45: FILE: tests/tcg/tricore/macros.h:27:
+#define EREG_RS2_HI %d9

ERROR: spaces required around that '%' (ctx:WxV)
#46: FILE: tests/tcg/tricore/macros.h:28:
+#define EREG_CALC_RESULT %e8
                          ^

ERROR: Macros with complex values should be enclosed in parenthesis
#46: FILE: tests/tcg/tricore/macros.h:28:
+#define EREG_CALC_RESULT %e8

ERROR: spaces required around that '%' (ctx:WxV)
#47: FILE: tests/tcg/tricore/macros.h:29:
+#define EREG_CALC_RESULT_HI %d9
                             ^

ERROR: Macros with complex values should be enclosed in parenthesis
#47: FILE: tests/tcg/tricore/macros.h:29:
+#define EREG_CALC_RESULT_HI %d9

ERROR: spaces required around that '%' (ctx:WxV)
#48: FILE: tests/tcg/tricore/macros.h:30:
+#define EREG_CALC_RESULT_LO %d8
                             ^

ERROR: Macros with complex values should be enclosed in parenthesis
#48: FILE: tests/tcg/tricore/macros.h:30:
+#define EREG_CALC_RESULT_LO %d8

ERROR: spaces required around that '%' (ctx:WxV)
#49: FILE: tests/tcg/tricore/macros.h:31:
+#define EREG_CORRECT_RESULT_LO %d0
                                ^

ERROR: Macros with complex values should be enclosed in parenthesis
#49: FILE: tests/tcg/tricore/macros.h:31:
+#define EREG_CORRECT_RESULT_LO %d0

ERROR: spaces required around that '%' (ctx:WxV)
#50: FILE: tests/tcg/tricore/macros.h:32:
+#define EREG_CORRECT_RESULT_HI %d1
                                ^

ERROR: Macros with complex values should be enclosed in parenthesis
#50: FILE: tests/tcg/tricore/macros.h:32:
+#define EREG_CORRECT_RESULT_HI %d1

ERROR: spaces required around that ':' (ctx:VxE)
#60: FILE: tests/tcg/tricore/macros.h:43:
+test_ ## num:                                              \
             ^

WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#87: 
new file mode 100644

total: 23 errors, 1 warnings, 69 lines checked

Patch 15/29 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

16/29 Checking commit 942377ccfbd0 (tests/tcg/tricore: Add fadd test)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#32: 
new file mode 100644

total: 0 errors, 1 warnings, 23 lines checked

Patch 16/29 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
17/29 Checking commit 11e0994160b3 (tests/tcg/tricore: Add fmul test)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#32: 
new file mode 100644

total: 0 errors, 1 warnings, 15 lines checked

Patch 17/29 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
18/29 Checking commit d72dd15144a3 (tests/tcg/tricore: Add ftoi test)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#51: 
new file mode 100644

total: 0 errors, 1 warnings, 30 lines checked

Patch 18/29 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
19/29 Checking commit 48ca02ea0bc9 (tests/tcg/tricore: Add madd test)
ERROR: spaces required around that '%' (ctx:WxV)
#40: FILE: tests/tcg/tricore/macros.h:12:
+#define DREG_RS3 %d4
                  ^

ERROR: Macros with complex values should be enclosed in parenthesis
#40: FILE: tests/tcg/tricore/macros.h:12:
+#define DREG_RS3 %d4

WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#69: 
new file mode 100644

total: 2 errors, 1 warnings, 48 lines checked

Patch 19/29 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

20/29 Checking commit 2dca1b247a62 (tests/tcg/tricore: Add msub test)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#32: 
new file mode 100644

total: 0 errors, 1 warnings, 16 lines checked

Patch 20/29 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
21/29 Checking commit fa99f891ada4 (tests/tcg/tricore: Add muls test)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#32: 
new file mode 100644

total: 0 errors, 1 warnings, 16 lines checked

Patch 21/29 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
22/29 Checking commit c58c3f32265b (tests/tcg/ppc64le: tests for brh/brw/brd)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#69: 
new file mode 100644

total: 0 errors, 1 warnings, 55 lines checked

Patch 22/29 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
23/29 Checking commit 74edf7c4c335 (tests/tcg: fix missing return)
24/29 Checking commit 7a853feeca20 (tests/tcg: don't allow clang as a cross compiler)
WARNING: line over 80 characters
#80: FILE: tests/tcg/configure.sh:269:
+                # For host systems we might get away with building without -static

WARNING: line over 80 characters
#108: FILE: tests/tcg/configure.sh:297:
+                                   -mbranch-protection=standard -o $TMPE $TMPC; then

WARNING: line over 80 characters
#119: FILE: tests/tcg/configure.sh:308:
+                        echo "CROSS_CC_HAS_POWER8_VECTOR=y" >> $config_target_mak

ERROR: line over 90 characters
#141: FILE: tests/tcg/configure.sh:321:
+    if test $got_cross_cc = no && test "$container" != no && test -n "$container_image"; then

WARNING: line over 80 characters
#145: FILE: tests/tcg/configure.sh:325:
+                echo "DOCKER_CROSS_CC_GUEST=$container_cross_cc" >> $config_target_mak

total: 1 errors, 4 warnings, 166 lines checked

Patch 24/29 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

25/29 Checking commit 4620d1dbd8ba (configure: use cc, not host_cc to set cross_cc for build arch)
26/29 Checking commit 25de4e5140c4 (plugins: Update qemu-plugins.symbols to match qemu-plugins.h)
27/29 Checking commit d9de308c7401 (plugins: Move all typedef and type declaration to the front of the qemu-plugin.h)
28/29 Checking commit f6787e315c3e (plugins/hotblocks: Properly freed the hash table values)
29/29 Checking commit 5bbea9e7dbc8 (plugins/hotpages: Properly freed the hash table values)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20210517161022.13984-1-alex.bennee@linaro.org/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com

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

* Re: [PULL 00/29] testing and plugin updates
  2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
                   ` (29 preceding siblings ...)
  2021-05-17 17:09 ` [PULL 00/29] testing and plugin updates no-reply
@ 2021-05-17 17:37 ` Alex Bennée
  30 siblings, 0 replies; 32+ messages in thread
From: Alex Bennée @ 2021-05-17 17:37 UTC (permalink / raw)
  To: peter.maydell; +Cc: Alex Bennée, qemu-devel


Alex Bennée <alex.bennee@linaro.org> writes:

> The following changes since commit 6005ee07c380cbde44292f5f6c96e7daa70f4f7d:
>
>   Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2021-05-16 17:22:46 +0100)
>
> are available in the Git repository at:
>
>   https://github.com/stsquad/qemu.git tags/pull-testing-and-plugin-updates-170521-2
>
> for you to fetch changes up to e3ac6f02999e88b9f8fb85013121a9408d07b6e2:
>
>   plugins/hotpages: Properly freed the hash table values (2021-05-17 14:38:44 +0100)
>
> ----------------------------------------------------------------
> testing and plugin updates:
>
>   - various fixes for binfmt_misc docker images
>   - add hexagon check-tcg support docker image
>   - add tricore check-tcg support
>   - add missing ppc64le tests
>   - don't use host_cc for test fallback
>   - check-tcg configure.sh tweaks for cross compile/clang
>   - fix some memory leaks in plugins
>
> ----------------------------------------------------------------
> Alessandro Di Federico (1):
>       tests/tcg: Use Hexagon Docker image
>
> Alex Bennée (8):
>       tests/docker: fix copying of executable in "update"
>       tests/docker: make executable an optional argument to "update"
>       tests/docker: allow "update" to add the current user
>       tests/docker: add "fetch" sub-command
>       docker: Add Hexagon image
>       tests/tcg: fix missing return
>       tests/tcg: don't allow clang as a cross compiler
>       configure: use cc, not host_cc to set cross_cc for build arch
>
> Andrew Melnychenko (1):
>       tests/docker: Added libbpf library to the docker files.
>
> Bastian Koppelmann (14):
>       tests/tcg: Run timeout cmds using --foreground
>       hw/tricore: Add testdevice for tests in tests/tcg/
>       tests/tcg/tricore: Add build infrastructure
>       configure: Emit HOST_CC to config-host.mak
>       tests/tcg/tricore: Add macros to create tests and first test 'abs'
>       tests/tcg/tricore: Add bmerge test
>       tests/tcg/tricore: Add clz test
>       tests/tcg/tricore: Add dvstep test
>       tests/tcg/tricore: Add fadd test
>       tests/tcg/tricore: Add fmul test
>       tests/tcg/tricore: Add ftoi test
>       tests/tcg/tricore: Add madd test
>       tests/tcg/tricore: Add msub test
>       tests/tcg/tricore: Add muls test
>
> Mahmoud Mandour (2):
>       plugins/hotblocks: Properly freed the hash table values
>       plugins/hotpages: Properly freed the hash table values
>
> Matheus Ferst (1):
>       tests/tcg/ppc64le: tests for brh/brw/brd

Oops I have dropped the patch to actually support this. Please ignore
and I'll send a v2.

-- 
Alex Bennée


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

end of thread, other threads:[~2021-05-17 17:42 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-17 16:09 [PULL 00/29] testing and plugin updates Alex Bennée
2021-05-17 16:09 ` [PULL 01/29] tests/docker: fix copying of executable in "update" Alex Bennée
2021-05-17 16:09 ` [PULL 02/29] tests/docker: make executable an optional argument to "update" Alex Bennée
2021-05-17 16:09 ` [PULL 03/29] tests/docker: allow "update" to add the current user Alex Bennée
2021-05-17 16:09 ` [PULL 04/29] tests/docker: add "fetch" sub-command Alex Bennée
2021-05-17 16:09 ` [PULL 05/29] docker: Add Hexagon image Alex Bennée
2021-05-17 16:09 ` [PULL 06/29] tests/tcg: Use Hexagon Docker image Alex Bennée
2021-05-17 16:10 ` [PULL 07/29] tests/docker: Added libbpf library to the docker files Alex Bennée
2021-05-17 16:10 ` [PULL 08/29] tests/tcg: Run timeout cmds using --foreground Alex Bennée
2021-05-17 16:10 ` [PULL 09/29] hw/tricore: Add testdevice for tests in tests/tcg/ Alex Bennée
2021-05-17 16:10 ` [PULL 10/29] tests/tcg/tricore: Add build infrastructure Alex Bennée
2021-05-17 16:10 ` [PULL 11/29] configure: Emit HOST_CC to config-host.mak Alex Bennée
2021-05-17 16:10 ` [PULL 12/29] tests/tcg/tricore: Add macros to create tests and first test 'abs' Alex Bennée
2021-05-17 16:10 ` [PULL 13/29] tests/tcg/tricore: Add bmerge test Alex Bennée
2021-05-17 16:10 ` [PULL 14/29] tests/tcg/tricore: Add clz test Alex Bennée
2021-05-17 16:10 ` [PULL 15/29] tests/tcg/tricore: Add dvstep test Alex Bennée
2021-05-17 16:10 ` [PULL 16/29] tests/tcg/tricore: Add fadd test Alex Bennée
2021-05-17 16:10 ` [PULL 17/29] tests/tcg/tricore: Add fmul test Alex Bennée
2021-05-17 16:10 ` [PULL 18/29] tests/tcg/tricore: Add ftoi test Alex Bennée
2021-05-17 16:10 ` [PULL 19/29] tests/tcg/tricore: Add madd test Alex Bennée
2021-05-17 16:10 ` [PULL 20/29] tests/tcg/tricore: Add msub test Alex Bennée
2021-05-17 16:10 ` [PULL 21/29] tests/tcg/tricore: Add muls test Alex Bennée
2021-05-17 16:10 ` [PULL 22/29] tests/tcg/ppc64le: tests for brh/brw/brd Alex Bennée
2021-05-17 16:10 ` [PULL 23/29] tests/tcg: fix missing return Alex Bennée
2021-05-17 16:10 ` [PULL 24/29] tests/tcg: don't allow clang as a cross compiler Alex Bennée
2021-05-17 16:10 ` [PULL 25/29] configure: use cc, not host_cc to set cross_cc for build arch Alex Bennée
2021-05-17 16:10 ` [PULL 26/29] plugins: Update qemu-plugins.symbols to match qemu-plugins.h Alex Bennée
2021-05-17 16:10 ` [PULL 27/29] plugins: Move all typedef and type declaration to the front of the qemu-plugin.h Alex Bennée
2021-05-17 16:10 ` [PULL 28/29] plugins/hotblocks: Properly freed the hash table values Alex Bennée
2021-05-17 16:10 ` [PULL 29/29] plugins/hotpages: " Alex Bennée
2021-05-17 17:09 ` [PULL 00/29] testing and plugin updates no-reply
2021-05-17 17:37 ` Alex Bennée

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.