All of lore.kernel.org
 help / color / mirror / Atom feed
* [XEN PATCH v1 0/3] automation: add x86_64 test (linux argo)
@ 2024-10-17 17:18 victorm.lira
  2024-10-17 17:18 ` [XEN PATCH v1 1/3] automation: add linux 6.6.56 artifact victorm.lira
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: victorm.lira @ 2024-10-17 17:18 UTC (permalink / raw)
  To: xen-devel; +Cc: Victor Lira, Doug Goldstein, Stefano Stabellini

From: Victor Lira <victorm.lira@amd.com>

Add x86_64 hardware test that creates a Xen Argo communication
connection between two PVH domains.

To accomplish this, add new build artifacts for Linux and Argo, and
update the xilinx x86_64 test script.

Victor Lira (3):
  automation: add linux 6.6.56 artifact
  automation: add linux argo test artifacts
  automation: add x86_64 test (linux argo)

 automation/gitlab-ci/build.yaml               | 34 +++++++
 automation/gitlab-ci/test.yaml                | 10 ++
 .../scripts/xilinx-smoke-dom0-x86_64.sh       | 76 ++++++++++-----
 .../tests-artifacts/argo/6.6.56.dockerfile    | 95 +++++++++++++++++++
 .../tests-artifacts/kernel/6.6.56.dockerfile  | 54 +++++++++++
 5 files changed, 244 insertions(+), 25 deletions(-)
 create mode 100644 automation/tests-artifacts/argo/6.6.56.dockerfile
 create mode 100644 automation/tests-artifacts/kernel/6.6.56.dockerfile

--
2.25.1



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

* [XEN PATCH v1 1/3] automation: add linux 6.6.56 artifact
  2024-10-17 17:18 [XEN PATCH v1 0/3] automation: add x86_64 test (linux argo) victorm.lira
@ 2024-10-17 17:18 ` victorm.lira
  2024-10-17 17:18 ` [XEN PATCH v1 2/3] automation: add linux argo test artifacts victorm.lira
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: victorm.lira @ 2024-10-17 17:18 UTC (permalink / raw)
  To: xen-devel; +Cc: Victor Lira, Doug Goldstein, Stefano Stabellini

From: Victor Lira <victorm.lira@amd.com>

Add dockerfile for building container image that holds linux 6.6.56
bzImage for x86_64, using the same build process as the current 6.1.19
image

Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Cc: Doug Goldstein <cardoe@cardoe.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org
---
 .../tests-artifacts/kernel/6.6.56.dockerfile  | 54 +++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 automation/tests-artifacts/kernel/6.6.56.dockerfile

diff --git a/automation/tests-artifacts/kernel/6.6.56.dockerfile b/automation/tests-artifacts/kernel/6.6.56.dockerfile
new file mode 100644
index 0000000000..5b6f2fe527
--- /dev/null
+++ b/automation/tests-artifacts/kernel/6.6.56.dockerfile
@@ -0,0 +1,54 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 debian:bookworm
+LABEL maintainer.name="The Xen Project" \
+      maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV LINUX_VERSION=6.6.56
+ENV USER root
+
+RUN mkdir /build
+WORKDIR /build
+
+# build depends
+RUN apt-get update && \
+    apt-get --quiet --yes install \
+        build-essential \
+        libssl-dev \
+        bc \
+        curl \
+        flex \
+        bison \
+        libelf-dev \
+        && \
+    apt-get autoremove -y && \
+    apt-get clean && \
+    rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* && \
+    \
+    # Build the kernel
+    curl -fsSLO https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"$LINUX_VERSION".tar.xz && \
+    tar xvJf linux-"$LINUX_VERSION".tar.xz && \
+    cd linux-"$LINUX_VERSION" && \
+    make defconfig && \
+    make xen.config && \
+    scripts/config --enable BRIDGE && \
+    scripts/config --enable IGC && \
+    scripts/config --enable TUN && \
+    cp .config .config.orig && \
+    cat .config.orig | grep XEN | grep =m |sed 's/=m/=y/g' >> .config && \
+    make -j$(nproc) bzImage && \
+    cp arch/x86/boot/bzImage / && \
+    cd /build && \
+    rm -rf linux-"$LINUX_VERSION"* && \
+    \
+    # Clean up
+    apt-get --yes purge \
+        build-essential \
+        libssl-dev \
+        bc \
+        curl \
+        flex \
+        bison \
+        libelf-dev \
+        && \
+    apt-get autoremove -y
--
2.25.1



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

* [XEN PATCH v1 2/3] automation: add linux argo test artifacts
  2024-10-17 17:18 [XEN PATCH v1 0/3] automation: add x86_64 test (linux argo) victorm.lira
  2024-10-17 17:18 ` [XEN PATCH v1 1/3] automation: add linux 6.6.56 artifact victorm.lira
@ 2024-10-17 17:18 ` victorm.lira
  2024-10-17 17:18 ` [XEN PATCH v1 3/3] automation: add x86_64 test (linux argo) victorm.lira
  2024-10-17 19:25 ` [XEN PATCH v1 0/3] " Andrew Cooper
  3 siblings, 0 replies; 7+ messages in thread
From: victorm.lira @ 2024-10-17 17:18 UTC (permalink / raw)
  To: xen-devel; +Cc: Victor Lira, Doug Goldstein, Stefano Stabellini

From: Victor Lira <victorm.lira@amd.com>

Add dockerfile for building container image that holds test binaries for
Xen Argo test on Linux 6.6.56 x86_64

The build produces the following:
- xen-argo.ko       Linux kernel module
- lib/libargo*      Linux shared library
- argo-exec         Linux user test program

Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Cc: Doug Goldstein <cardoe@cardoe.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org
---
 .../tests-artifacts/argo/6.6.56.dockerfile    | 95 +++++++++++++++++++
 1 file changed, 95 insertions(+)
 create mode 100644 automation/tests-artifacts/argo/6.6.56.dockerfile

diff --git a/automation/tests-artifacts/argo/6.6.56.dockerfile b/automation/tests-artifacts/argo/6.6.56.dockerfile
new file mode 100644
index 0000000000..a8e199ad3b
--- /dev/null
+++ b/automation/tests-artifacts/argo/6.6.56.dockerfile
@@ -0,0 +1,95 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 alpine:3.18
+LABEL maintainer.name="The Xen Project" \
+      maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV LINUX_VERSION=6.6.56
+ENV USER root
+
+RUN mkdir /build /artifacts
+WORKDIR /build
+ENV BUILDDIR=/build/
+ENV COPYDIR=/artifacts/
+ENV ARGO_SHA="705a7a8a624b42e13e655d3042059b8a85cdf6a3"
+ENV ARGOEXEC_SHA="d900429f6640acc6f68a3d3a4c945d7da60625d8"
+
+RUN apk --no-cache add \
+  \
+  musl-dev  \
+  build-base \
+  libc6-compat \
+  linux-headers \
+  bash \
+  git \
+  curl \
+  flex \
+  bison \
+  elfutils-dev \
+  autoconf \
+  automake \
+  libtool && \
+  \
+  # Prepare Linux sources
+  curl -fsSLO https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"$LINUX_VERSION".tar.xz && \
+  tar xJf linux-"$LINUX_VERSION".tar.xz && \
+  cd linux-"$LINUX_VERSION" && \
+  make ARCH=x86 defconfig && \
+  make ARCH=x86 xen.config && \
+  ./scripts/config --enable BRIDGE && \
+  ./scripts/config --enable IGC && \
+  ./scripts/config --enable TUN && \
+  cp .config .config.orig && \
+  cat .config.orig | grep XEN | grep =m |sed 's/=m/=y/g' >> .config && \
+  make ARCH=x86 olddefconfig && \
+  make ARCH=x86 modules_prepare && \
+  \
+  # Build Linux kernel module for Xen Argo
+  cd "${BUILDDIR}" && \
+  git clone \
+      --depth=1 --branch=master \
+      https://github.com/OpenXT/linux-xen-argo.git && \
+  git -C "${BUILDDIR}/linux-xen-argo" switch --detach "${ARGO_SHA}" && \
+  make -C "linux-${LINUX_VERSION}" M="${BUILDDIR}/linux-xen-argo/argo-linux" \
+      CFLAGS_MODULE="-Wno-error" KBUILD_MODPOST_WARN=1 && \
+  cp "linux-xen-argo/argo-linux/xen-argo.ko" "${COPYDIR}/xen-argo.ko" && \
+  \
+  # Build Linux libargo shared library, applying fixes to build in Alpine
+  cd "${BUILDDIR}/linux-xen-argo/libargo" && \
+  sed -i "s|AM_INIT_AUTOMAKE|AC_CONFIG_AUX_DIR(.)\nAM_INIT_AUTOMAKE|" configure.ac && \
+  sed -i "s/__SOCKADDR_COMMON (sxenargo_)/sa_family_t sxenargo_family/" src/libargo.h && \
+  sed -i "s/__SOCKADDR_COMMON_SIZE/(sizeof (unsigned short int))/" src/libargo.h && \
+  autoreconf --install && \
+  ./configure  --prefix="${COPYDIR}" CPPFLAGS="-I${PWD}/../argo-linux/include" && \
+  make && \
+  make install && \
+  \
+  # Build Linux user program, modifying for xilinx argo test
+  cd "${BUILDDIR}" && \
+  wget "https://raw.githubusercontent.com/OpenXT/xenclient-oe/${ARGOEXEC_SHA}/recipes-openxt/argo-exec/argo-exec/argo-exec.c" && \
+  sed -i "s|#include <xen/xen.h>||" argo-exec.c && \
+  sed -i "s|ret = shuffle(s, fds\[0\], fds\[1\]);|ret = shuffle(s, 0, 1);|" argo-exec.c && \
+  gcc -I"${BUILDDIR}/linux-xen-argo/libargo/src" \
+      -I"${BUILDDIR}/linux-xen-argo/argo-linux/include" \
+      -L"${COPYDIR}/lib/" \
+      -o argo-exec argo-exec.c -largo && \
+  cp argo-exec "${COPYDIR}" && \
+  \
+  # Clean up
+  cd /build && \
+  rm -fr linux-"$LINUX_VERSION"* linux-xen-argo argo-exec.c && \
+  \
+  apk del \
+  \
+  musl-dev  \
+  build-base \
+  libc6-compat \
+  linux-headers \
+  bash \
+  git \
+  curl \
+  flex \
+  bison \
+  elfutils-dev \
+  autoconf \
+  automake \
+  libtool
--
2.25.1



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

* [XEN PATCH v1 3/3] automation: add x86_64 test (linux argo)
  2024-10-17 17:18 [XEN PATCH v1 0/3] automation: add x86_64 test (linux argo) victorm.lira
  2024-10-17 17:18 ` [XEN PATCH v1 1/3] automation: add linux 6.6.56 artifact victorm.lira
  2024-10-17 17:18 ` [XEN PATCH v1 2/3] automation: add linux argo test artifacts victorm.lira
@ 2024-10-17 17:18 ` victorm.lira
  2024-10-17 19:25 ` [XEN PATCH v1 0/3] " Andrew Cooper
  3 siblings, 0 replies; 7+ messages in thread
From: victorm.lira @ 2024-10-17 17:18 UTC (permalink / raw)
  To: xen-devel; +Cc: Victor Lira, Doug Goldstein, Stefano Stabellini

From: Victor Lira <victorm.lira@amd.com>

Add x86_64 hardware test that creates a Xen Argo communication
connection between two PVH domains. In the test, dom0 creates a domU and
listens for messages sent by the domU through Argo.

To accomplish this, add Xen build jobs to export Linux and argo artifacts,
and build Xen with CONFIG_ARGO=y.

Update the xilinx x86_64 test script to support the new test, and add
"sync_console" to command line to avoid an issue with console messages
being lost.

Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Cc: Doug Goldstein <cardoe@cardoe.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org
---
 automation/gitlab-ci/build.yaml               | 34 +++++++++
 automation/gitlab-ci/test.yaml                | 10 +++
 .../scripts/xilinx-smoke-dom0-x86_64.sh       | 76 +++++++++++++------
 3 files changed, 95 insertions(+), 25 deletions(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index c2db69ecf8..827759fb7b 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -326,6 +326,30 @@ kernel-6.1.19-export:
   tags:
     - x86_64

+kernel-6.6.56-export:
+  extends: .test-jobs-artifact-common
+  image: registry.gitlab.com/xen-project/xen/tests-artifacts/kernel:6.6.56
+  script:
+    - mkdir binaries && cp /bzImage binaries/bzImage
+  artifacts:
+    paths:
+      - binaries/bzImage
+  tags:
+    - x86_64
+
+argo-6.6.56-export:
+  extends: .test-jobs-artifact-common
+  image: registry.gitlab.com/xen-project/xen/tests-artifacts/argo:6.6.56
+  script:
+    - mkdir binaries && cp -ar /artifacts/* binaries
+  artifacts:
+    paths:
+      - binaries/xen-argo.ko
+      - binaries/lib/
+      - binaries/argo-exec
+  tags:
+    - x86_64
+
 # Jobs below this line

 # Build jobs needed for tests
@@ -341,6 +365,16 @@ alpine-3.18-gcc-debug:
     CONTAINER: alpine:3.18
     BUILD_QEMU_XEN: y

+alpine-3.18-gcc-debug-argo:
+  extends: .gcc-x86-64-build-debug
+  variables:
+    CONTAINER: alpine:3.18
+    EXTRA_XEN_CONFIG: |
+      CONFIG_EXPERT=y
+      CONFIG_UNSUPPORTED=y
+      CONFIG_ARGO=y
+    BUILD_QEMU_XEN: n
+
 debian-bookworm-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index b27c2be174..849860627d 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -192,6 +192,16 @@ xilinx-smoke-dom0-x86_64-gcc-debug:
     - *x86-64-test-needs
     - alpine-3.18-gcc-debug

+xilinx-smoke-dom0-x86_64-gcc-debug-argo:
+  extends: .xilinx-x86_64
+  script:
+    - ./automation/scripts/xilinx-smoke-dom0-x86_64.sh argo 2>&1 | tee ${LOGFILE}
+  needs:
+    - alpine-3.18-gcc-debug-argo
+    - kernel-6.6.56-export
+    - alpine-3.18-rootfs-export
+    - argo-6.6.56-export
+
 adl-smoke-x86-64-gcc-debug:
   extends: .adl-x86-64
   script:
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index 7027f083ba..f70cfdc155 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -9,6 +9,8 @@ fatal() {
     exit 1
 }

+WORKDIR="${PWD}"
+
 # Test parameter defaults.
 TEST="$1"
 PASS_MSG="Test passed: ${TEST}"
@@ -24,9 +26,10 @@ kernel = "/boot/vmlinuz"
 ramdisk = "/boot/initrd-domU"
 extra = "root=/dev/ram0 console=hvc0"
 memory = 512
-vif = [ "bridge=xenbr0", ]
-disk = [ ]
 '
+DOMU_CFG_EXTRA=""
+copy_domU_files () { :; }
+copy_dom0_files () { :; }

 # Select test variant.
 if [ "${TEST}" = "ping" ]; then
@@ -39,6 +42,14 @@ done
 echo \"${DOMU_MSG}\"
 "
     DOM0_CMD="
+brctl addbr xenbr0
+brctl addif xenbr0 eth0
+ifconfig eth0 up
+ifconfig xenbr0 up
+ifconfig xenbr0 192.168.0.1
+# get domU console content into test log
+tail -F /var/log/xen/console/guest-domU.log 2>/dev/null | sed -e \"s/^/(domU) /\" &
+xl create /etc/xen/domU.cfg
 set +x
 until grep -q \"${DOMU_MSG}\" /var/log/xen/console/guest-domU.log; do
     sleep 1
@@ -46,6 +57,34 @@ done
 set -x
 echo \"${PASS_MSG}\"
 "
+    DOMU_CFG_EXTRA='
+vif = [ "bridge=xenbr0", ]
+disk = [ ]
+'
+elif [ "${TEST}" = "argo" ]
+then
+    PASS_MSG="TEST: Message from DOMU"
+    XEN_CMD_EXTRA="argo=1,mac-permissive=1"
+    DOMU_CMD="
+insmod /root/xen-argo.ko
+until false
+do
+  echo \"${PASS_MSG}\"
+  sleep 1
+done | argo-exec -p 28333 -d 0 -- /bin/echo
+"
+    DOM0_CMD="
+insmod /root/xen-argo.ko
+xl create /etc/xen/domU.cfg
+argo-exec -l -p 28333 -- /bin/echo
+"
+copy_dom0_files ()
+{
+    cp "${WORKDIR}/binaries/xen-argo.ko" "root/"
+    cp -ar "${WORKDIR}/binaries/lib/"* "usr/local/lib/"
+    cp "${WORKDIR}/binaries/argo-exec" "usr/local/bin/"
+}
+copy_domU_files () { copy_dom0_files; }
 else
     fatal "Unknown test: ${TEST}"
 fi
@@ -54,18 +93,18 @@ fi
 mkdir -p rootfs
 cd rootfs
 tar xzf ../binaries/initrd.tar.gz
-mkdir proc
-mkdir run
-mkdir srv
-mkdir sys
+mkdir proc run srv sys
 rm var/run
 echo "#!/bin/sh
-
+set -x
+export LD_LIBRARY_PATH=/usr/local/lib
+PATH=/usr/local/bin:/usr/local/sbin:\$PATH
 ${DOMU_CMD}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
 echo "rc_verbose=yes" >> etc/rc.conf
 sed -i -e 's/^Welcome/domU \0/' etc/issue
+copy_domU_files
 find . | cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
 cd ..
 rm -rf rootfs
@@ -74,37 +113,24 @@ rm -rf rootfs
 mkdir -p rootfs
 cd rootfs
 tar xzf ../binaries/initrd.tar.gz
-mkdir boot
-mkdir proc
-mkdir run
-mkdir srv
-mkdir sys
+mkdir boot proc run srv sys
 rm var/run
 cp -ar ../binaries/dist/install/* .
 echo "#!/bin/bash
-
+set -x
 export LD_LIBRARY_PATH=/usr/local/lib
 bash /etc/init.d/xencommons start
-
-brctl addbr xenbr0
-brctl addif xenbr0 eth0
-ifconfig eth0 up
-ifconfig xenbr0 up
-ifconfig xenbr0 192.168.0.1
-
-# get domU console content into test log
-tail -F /var/log/xen/console/guest-domU.log 2>/dev/null | sed -e \"s/^/(domU) /\" &
-xl create /etc/xen/domU.cfg
 ${DOM0_CMD}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "${DOMU_CFG}" > etc/xen/domU.cfg
+echo "${DOMU_CFG}${DOMU_CFG_EXTRA}" > etc/xen/domU.cfg
 echo "rc_verbose=yes" >> etc/rc.conf
 echo "XENCONSOLED_TRACE=all" >> etc/default/xencommons
 echo "QEMU_XEN=/bin/false" >> etc/default/xencommons
 mkdir -p var/log/xen/console
 cp ../binaries/bzImage boot/vmlinuz
 cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU
+copy_dom0_files
 find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
 cd ..

@@ -116,7 +142,7 @@ cp -f binaries/bzImage ${TFTP}/${TEST_BOARD}/vmlinuz
 cp -f binaries/dom0-rootfs.cpio.gz ${TFTP}/${TEST_BOARD}/initrd-dom0
 echo "
 net_default_server=10.0.6.1
-multiboot2 (tftp)/${TEST_BOARD}/xen ${XEN_CMDLINE}
+multiboot2 (tftp)/${TEST_BOARD}/xen ${XEN_CMDLINE} sync_console
 module2 (tftp)/${TEST_BOARD}/vmlinuz console=hvc0 root=/dev/ram0 earlyprintk=xen
 module2 (tftp)/${TEST_BOARD}/initrd-dom0
 boot
--
2.25.1



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

* Re: [XEN PATCH v1 0/3] automation: add x86_64 test (linux argo)
  2024-10-17 17:18 [XEN PATCH v1 0/3] automation: add x86_64 test (linux argo) victorm.lira
                   ` (2 preceding siblings ...)
  2024-10-17 17:18 ` [XEN PATCH v1 3/3] automation: add x86_64 test (linux argo) victorm.lira
@ 2024-10-17 19:25 ` Andrew Cooper
  2024-10-18  2:44   ` Stefano Stabellini
  2024-10-18 11:35   ` Marek Marczykowski-Górecki
  3 siblings, 2 replies; 7+ messages in thread
From: Andrew Cooper @ 2024-10-17 19:25 UTC (permalink / raw)
  To: victorm.lira, xen-devel
  Cc: Doug Goldstein, Stefano Stabellini, Christopher Clark,
	Daniel Smith

On 17/10/2024 6:18 pm, victorm.lira@amd.com wrote:
> From: Victor Lira <victorm.lira@amd.com>
>
> Add x86_64 hardware test that creates a Xen Argo communication
> connection between two PVH domains.
>
> To accomplish this, add new build artifacts for Linux and Argo, and
> update the xilinx x86_64 test script.
>
> Victor Lira (3):
>   automation: add linux 6.6.56 artifact
>   automation: add linux argo test artifacts
>   automation: add x86_64 test (linux argo)
>
>  automation/gitlab-ci/build.yaml               | 34 +++++++
>  automation/gitlab-ci/test.yaml                | 10 ++
>  .../scripts/xilinx-smoke-dom0-x86_64.sh       | 76 ++++++++++-----
>  .../tests-artifacts/argo/6.6.56.dockerfile    | 95 +++++++++++++++++++
>  .../tests-artifacts/kernel/6.6.56.dockerfile  | 54 +++++++++++
>  5 files changed, 244 insertions(+), 25 deletions(-)
>  create mode 100644 automation/tests-artifacts/argo/6.6.56.dockerfile
>  create mode 100644 automation/tests-artifacts/kernel/6.6.56.dockerfile

I'm afraid that we need to stop doing this test-artefacts like this.

The *-export pattern is nonsense (wasting lots of runner network&disk
and time just to copy data back into Github's artefact store), and the
main reason why we're at ~2T of data total for Xen-project.

We need a project wide expires_in: setting, which will prune all of our
not-most-recent content, and probably make most of that 2T disappear.

But, the test jobs stating what artefacts they want are perfectly
capable of pulling artefacts from somewhere other than an earlier nop
build job, meaning that we could get away with having one artefact
shared by everything, not one artefact copied per user per pipeline into
the artefact store.


I was thinking of experimenting with a separate top-level repo that does
nothing but has a few manual runs to populate artefacts, and having the
Xen tests pull artefacts from here rather than from earlier build jobs.

But, I've not had a chance to play yet, so I don't know for sure if this
is a workable direction.

Alternatively, if anyone has a better idea, I'm all ears.  But, it is
very clear that the *-export pattern is a giant bodge and there are
better ways.


Other notes.  Your dockerfiles use syntax:1 but not heredocs, and
they're also root containers.

Please follow the pattern in
https://lore.kernel.org/xen-devel/178560672106e37648304f5e597cc0b16c8db6db.1729170005.git.javi.merino@cloud.com/T/#u
or one of plenty other containers I've already converted in the past few
months.

Please do not add a new build job just to get a new minor variation of
Xen.  Just enable ARGO in general Xen build.

Although, given that you are now putting in testing from an unsupported
feature, we really need to bump the suggestion to move it to at least
Tech Preview.  (CC Dan/Chris).

~Andrew


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

* Re: [XEN PATCH v1 0/3] automation: add x86_64 test (linux argo)
  2024-10-17 19:25 ` [XEN PATCH v1 0/3] " Andrew Cooper
@ 2024-10-18  2:44   ` Stefano Stabellini
  2024-10-18 11:35   ` Marek Marczykowski-Górecki
  1 sibling, 0 replies; 7+ messages in thread
From: Stefano Stabellini @ 2024-10-18  2:44 UTC (permalink / raw)
  To: Andrew Cooper
  Cc: victorm.lira, xen-devel, Doug Goldstein, Stefano Stabellini,
	Christopher Clark, Daniel Smith

[-- Attachment #1: Type: text/plain, Size: 3392 bytes --]

On Thu, 17 Oct 2024, Andrew Cooper wrote:
> On 17/10/2024 6:18 pm, victorm.lira@amd.com wrote:
> > From: Victor Lira <victorm.lira@amd.com>
> >
> > Add x86_64 hardware test that creates a Xen Argo communication
> > connection between two PVH domains.
> >
> > To accomplish this, add new build artifacts for Linux and Argo, and
> > update the xilinx x86_64 test script.
> >
> > Victor Lira (3):
> >   automation: add linux 6.6.56 artifact
> >   automation: add linux argo test artifacts
> >   automation: add x86_64 test (linux argo)
> >
> >  automation/gitlab-ci/build.yaml               | 34 +++++++
> >  automation/gitlab-ci/test.yaml                | 10 ++
> >  .../scripts/xilinx-smoke-dom0-x86_64.sh       | 76 ++++++++++-----
> >  .../tests-artifacts/argo/6.6.56.dockerfile    | 95 +++++++++++++++++++
> >  .../tests-artifacts/kernel/6.6.56.dockerfile  | 54 +++++++++++
> >  5 files changed, 244 insertions(+), 25 deletions(-)
> >  create mode 100644 automation/tests-artifacts/argo/6.6.56.dockerfile
> >  create mode 100644 automation/tests-artifacts/kernel/6.6.56.dockerfile
> 
> I'm afraid that we need to stop doing this test-artefacts like this.
> 
> The *-export pattern is nonsense (wasting lots of runner network&disk
> and time just to copy data back into Github's artefact store), and the
> main reason why we're at ~2T of data total for Xen-project.
> 
> We need a project wide expires_in: setting, which will prune all of our
> not-most-recent content, and probably make most of that 2T disappear.

I looked at this for an hour and couldn't find a way to do it
unfortunately. expires_in can only be changed if you are an Admin of the
Gitlab instance, meaning an Admin of gitlab.com.

However, there is a setting in each repository (not one global at the
gitlab.com/xen-project level) called "Keep artifacts from most recent
successful jobs" that can be disabled. I did it manually for my repo.

The big offender is patchew. I went and disabled "Keep artifacts from
most recent successful jobs" but I didn't see any immediate changes in
storage utilization. But it is expected to take time to propagate.


> But, the test jobs stating what artefacts they want are perfectly
> capable of pulling artefacts from somewhere other than an earlier nop
> build job, meaning that we could get away with having one artefact
> shared by everything, not one artefact copied per user per pipeline into
> the artefact store.
> 
> 
> I was thinking of experimenting with a separate top-level repo that does
> nothing but has a few manual runs to populate artefacts, and having the
> Xen tests pull artefacts from here rather than from earlier build jobs.
> 
> But, I've not had a chance to play yet, so I don't know for sure if this
> is a workable direction.
>
> Alternatively, if anyone has a better idea, I'm all ears.  But, it is
> very clear that the *-export pattern is a giant bodge and there are
> better ways.
> 
> Other notes.  Your dockerfiles use syntax:1 but not heredocs, and
> they're also root containers.
> 
> Please follow the pattern in
> https://lore.kernel.org/xen-devel/178560672106e37648304f5e597cc0b16c8db6db.1729170005.git.javi.merino@cloud.com/T/#u
> or one of plenty other containers I've already converted in the past few
> months.
> 
> Please do not add a new build job just to get a new minor variation of
> Xen.  Just enable ARGO in general Xen build.

+1

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

* Re: [XEN PATCH v1 0/3] automation: add x86_64 test (linux argo)
  2024-10-17 19:25 ` [XEN PATCH v1 0/3] " Andrew Cooper
  2024-10-18  2:44   ` Stefano Stabellini
@ 2024-10-18 11:35   ` Marek Marczykowski-Górecki
  1 sibling, 0 replies; 7+ messages in thread
From: Marek Marczykowski-Górecki @ 2024-10-18 11:35 UTC (permalink / raw)
  To: Andrew Cooper
  Cc: victorm.lira, xen-devel, Doug Goldstein, Stefano Stabellini,
	Christopher Clark, Daniel Smith

[-- Attachment #1: Type: text/plain, Size: 454 bytes --]

On Thu, Oct 17, 2024 at 08:25:57PM +0100, Andrew Cooper wrote:
> I was thinking of experimenting with a separate top-level repo that does
> nothing but has a few manual runs to populate artefacts, and having the
> Xen tests pull artefacts from here rather than from earlier build jobs.

This sounds like a good idea. It may also help with rebuilding
containers when needed?

-- 
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

end of thread, other threads:[~2024-10-18 11:35 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-17 17:18 [XEN PATCH v1 0/3] automation: add x86_64 test (linux argo) victorm.lira
2024-10-17 17:18 ` [XEN PATCH v1 1/3] automation: add linux 6.6.56 artifact victorm.lira
2024-10-17 17:18 ` [XEN PATCH v1 2/3] automation: add linux argo test artifacts victorm.lira
2024-10-17 17:18 ` [XEN PATCH v1 3/3] automation: add x86_64 test (linux argo) victorm.lira
2024-10-17 19:25 ` [XEN PATCH v1 0/3] " Andrew Cooper
2024-10-18  2:44   ` Stefano Stabellini
2024-10-18 11:35   ` Marek Marczykowski-Górecki

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.