* [PATCH 0/2] CI: Improve domU handling @ 2025-06-02 17:46 Andrew Cooper 2025-06-02 17:46 ` [PATCH 1/2] CI: Use bash arrays to simplfy dom0 rootfs construction Andrew Cooper 2025-06-02 17:46 ` [PATCH 2/2] CI: Adjust how domU is packaged in dom0 Andrew Cooper 0 siblings, 2 replies; 7+ messages in thread From: Andrew Cooper @ 2025-06-02 17:46 UTC (permalink / raw) To: Xen-devel Cc: Andrew Cooper, Anthony PERARD, Stefano Stabellini, Michal Orzel, Marek Marczykowski-Górecki Improvements to domU kernel+initrd handling. https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1849446456 Andrew Cooper (2): CI: Use bash arrays to simplfy dom0 rootfs construction CI: Adjust how domU is packaged in dom0 automation/scripts/qubes-x86-64.sh | 35 +++++++++++++------ .../scripts/xilinx-smoke-dom0-x86_64.sh | 34 ++++++++++++------ 2 files changed, 49 insertions(+), 20 deletions(-) -- 2.39.5 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] CI: Use bash arrays to simplfy dom0 rootfs construction 2025-06-02 17:46 [PATCH 0/2] CI: Improve domU handling Andrew Cooper @ 2025-06-02 17:46 ` Andrew Cooper 2025-06-02 22:49 ` Stefano Stabellini 2025-06-03 10:50 ` Marek Marczykowski-Górecki 2025-06-02 17:46 ` [PATCH 2/2] CI: Adjust how domU is packaged in dom0 Andrew Cooper 1 sibling, 2 replies; 7+ messages in thread From: Andrew Cooper @ 2025-06-02 17:46 UTC (permalink / raw) To: Xen-devel Cc: Andrew Cooper, Anthony PERARD, Stefano Stabellini, Michal Orzel, Marek Marczykowski-Górecki For Qubes, this requires switching from sh to bash. This reduces the number of times the target filename needs to be written to 1. Expand the comment to explain the concatination constraints. No functional change. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> --- CC: Anthony PERARD <anthony.perard@vates.tech> CC: Stefano Stabellini <sstabellini@kernel.org> CC: Michal Orzel <michal.orzel@amd.com> CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> v2: * Use dom0_rootfs_extra_{un,}comp arrays --- automation/scripts/qubes-x86-64.sh | 18 ++++++++++++----- .../scripts/xilinx-smoke-dom0-x86_64.sh | 20 ++++++++++++------- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh index 8e86940c6eff..5ec6eff6c469 100755 --- a/automation/scripts/qubes-x86-64.sh +++ b/automation/scripts/qubes-x86-64.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -ex -o pipefail @@ -22,6 +22,8 @@ domU_type="pvh" domU_vif="'bridge=xenbr0'," domU_extra_config= retrieve_xml= +dom0_rootfs_extra_comp=() +dom0_rootfs_extra_uncomp=() case "${test_variant}" in ### test: smoke test & smoke test PVH & smoke test HVM & smoke test PVSHIM @@ -187,10 +189,16 @@ Kernel \r on an \m (\l) rm -rf rootfs fi -# Dom0 rootfs -cp binaries/ucode.cpio binaries/dom0-rootfs.cpio.gz -cat binaries/rootfs.cpio.gz >> binaries/dom0-rootfs.cpio.gz -cat binaries/xen-tools.cpio.gz >> binaries/dom0-rootfs.cpio.gz +# Dom0 rootfs. The order or concatination is important; ucode wants to come +# first, and all uncompressed must be ahead of compressed. +dom0_rootfs_parts=( + binaries/ucode.cpio + "${dom0_rootfs_extra_uncomp[@]}" + binaries/rootfs.cpio.gz + binaries/xen-tools.cpio.gz + "${dom0_rootfs_extra_comp[@]}" +) +cat "${dom0_rootfs_parts[@]}" > binaries/dom0-rootfs.cpio.gz # test-local configuration mkdir -p rootfs diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh index 8f02fa73bd06..45121f39400a 100755 --- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh +++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh @@ -28,6 +28,8 @@ extra = "root=/dev/ram0 console=hvc0" memory = 512 ' DOMU_CFG_EXTRA="" +dom0_rootfs_extra_comp=() +dom0_rootfs_extra_uncomp=() # Select test variant. if [ "${TEST}" = "ping" ]; then @@ -71,6 +73,7 @@ do sleep 1 done | argo-exec -p 28333 -d 0 -- /bin/echo " + dom0_rootfs_extra_comp+=(binaries/argo.cpio.gz) DOM0_CMD=" insmod /lib/modules/\$(uname -r)/updates/xen-argo.ko xl -vvv create /etc/xen/domU.cfg @@ -103,13 +106,16 @@ find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz cd .. rm -rf rootfs -# Dom0 rootfs -cp binaries/ucode.cpio binaries/dom0-rootfs.cpio.gz -cat binaries/rootfs.cpio.gz >> binaries/dom0-rootfs.cpio.gz -cat binaries/xen-tools.cpio.gz >> binaries/dom0-rootfs.cpio.gz -if [[ "${TEST}" == argo ]]; then - cat binaries/argo.cpio.gz >> binaries/dom0-rootfs.cpio.gz -fi +# Dom0 rootfs. The order or concatination is important; ucode wants to come +# first, and all uncompressed must be ahead of compressed. +dom0_rootfs_parts=( + binaries/ucode.cpio + "${dom0_rootfs_extra_uncomp[@]}" + binaries/rootfs.cpio.gz + binaries/xen-tools.cpio.gz + "${dom0_rootfs_extra_comp[@]}" +) +cat "${dom0_rootfs_parts[@]}" > binaries/dom0-rootfs.cpio.gz # test-local configuration mkdir -p rootfs -- 2.39.5 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] CI: Use bash arrays to simplfy dom0 rootfs construction 2025-06-02 17:46 ` [PATCH 1/2] CI: Use bash arrays to simplfy dom0 rootfs construction Andrew Cooper @ 2025-06-02 22:49 ` Stefano Stabellini 2025-06-03 10:50 ` Marek Marczykowski-Górecki 1 sibling, 0 replies; 7+ messages in thread From: Stefano Stabellini @ 2025-06-02 22:49 UTC (permalink / raw) To: Andrew Cooper Cc: Xen-devel, Anthony PERARD, Stefano Stabellini, Michal Orzel, Marek Marczykowski-Górecki [-- Attachment #1: Type: text/plain, Size: 3825 bytes --] On Mon, 2 Jun 2025, Andrew Cooper wrote: > For Qubes, this requires switching from sh to bash. > > This reduces the number of times the target filename needs to be written to 1. > > Expand the comment to explain the concatination constraints. > > No functional change. > > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > --- > CC: Anthony PERARD <anthony.perard@vates.tech> > CC: Stefano Stabellini <sstabellini@kernel.org> > CC: Michal Orzel <michal.orzel@amd.com> > CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> > > v2: > * Use dom0_rootfs_extra_{un,}comp arrays > --- > automation/scripts/qubes-x86-64.sh | 18 ++++++++++++----- > .../scripts/xilinx-smoke-dom0-x86_64.sh | 20 ++++++++++++------- > 2 files changed, 26 insertions(+), 12 deletions(-) > > diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh > index 8e86940c6eff..5ec6eff6c469 100755 > --- a/automation/scripts/qubes-x86-64.sh > +++ b/automation/scripts/qubes-x86-64.sh > @@ -1,4 +1,4 @@ > -#!/bin/sh > +#!/bin/bash > > set -ex -o pipefail > > @@ -22,6 +22,8 @@ domU_type="pvh" > domU_vif="'bridge=xenbr0'," > domU_extra_config= > retrieve_xml= > +dom0_rootfs_extra_comp=() > +dom0_rootfs_extra_uncomp=() > > case "${test_variant}" in > ### test: smoke test & smoke test PVH & smoke test HVM & smoke test PVSHIM > @@ -187,10 +189,16 @@ Kernel \r on an \m (\l) > rm -rf rootfs > fi > > -# Dom0 rootfs > -cp binaries/ucode.cpio binaries/dom0-rootfs.cpio.gz > -cat binaries/rootfs.cpio.gz >> binaries/dom0-rootfs.cpio.gz > -cat binaries/xen-tools.cpio.gz >> binaries/dom0-rootfs.cpio.gz > +# Dom0 rootfs. The order or concatination is important; ucode wants to come > +# first, and all uncompressed must be ahead of compressed. > +dom0_rootfs_parts=( > + binaries/ucode.cpio > + "${dom0_rootfs_extra_uncomp[@]}" > + binaries/rootfs.cpio.gz > + binaries/xen-tools.cpio.gz > + "${dom0_rootfs_extra_comp[@]}" > +) > +cat "${dom0_rootfs_parts[@]}" > binaries/dom0-rootfs.cpio.gz > > # test-local configuration > mkdir -p rootfs > diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh > index 8f02fa73bd06..45121f39400a 100755 > --- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh > +++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh > @@ -28,6 +28,8 @@ extra = "root=/dev/ram0 console=hvc0" > memory = 512 > ' > DOMU_CFG_EXTRA="" > +dom0_rootfs_extra_comp=() > +dom0_rootfs_extra_uncomp=() > > # Select test variant. > if [ "${TEST}" = "ping" ]; then > @@ -71,6 +73,7 @@ do > sleep 1 > done | argo-exec -p 28333 -d 0 -- /bin/echo > " > + dom0_rootfs_extra_comp+=(binaries/argo.cpio.gz) > DOM0_CMD=" > insmod /lib/modules/\$(uname -r)/updates/xen-argo.ko > xl -vvv create /etc/xen/domU.cfg > @@ -103,13 +106,16 @@ find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz > cd .. > rm -rf rootfs > > -# Dom0 rootfs > -cp binaries/ucode.cpio binaries/dom0-rootfs.cpio.gz > -cat binaries/rootfs.cpio.gz >> binaries/dom0-rootfs.cpio.gz > -cat binaries/xen-tools.cpio.gz >> binaries/dom0-rootfs.cpio.gz > -if [[ "${TEST}" == argo ]]; then > - cat binaries/argo.cpio.gz >> binaries/dom0-rootfs.cpio.gz > -fi > +# Dom0 rootfs. The order or concatination is important; ucode wants to come > +# first, and all uncompressed must be ahead of compressed. > +dom0_rootfs_parts=( > + binaries/ucode.cpio > + "${dom0_rootfs_extra_uncomp[@]}" > + binaries/rootfs.cpio.gz > + binaries/xen-tools.cpio.gz > + "${dom0_rootfs_extra_comp[@]}" > +) > +cat "${dom0_rootfs_parts[@]}" > binaries/dom0-rootfs.cpio.gz > > # test-local configuration > mkdir -p rootfs > -- > 2.39.5 > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] CI: Use bash arrays to simplfy dom0 rootfs construction 2025-06-02 17:46 ` [PATCH 1/2] CI: Use bash arrays to simplfy dom0 rootfs construction Andrew Cooper 2025-06-02 22:49 ` Stefano Stabellini @ 2025-06-03 10:50 ` Marek Marczykowski-Górecki 1 sibling, 0 replies; 7+ messages in thread From: Marek Marczykowski-Górecki @ 2025-06-03 10:50 UTC (permalink / raw) To: Andrew Cooper; +Cc: Xen-devel, Anthony PERARD, Stefano Stabellini, Michal Orzel [-- Attachment #1: Type: text/plain, Size: 4115 bytes --] On Mon, Jun 02, 2025 at 06:46:17PM +0100, Andrew Cooper wrote: > For Qubes, this requires switching from sh to bash. > > This reduces the number of times the target filename needs to be written to 1. > > Expand the comment to explain the concatination constraints. > > No functional change. > > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> With typo below fixed: Reviewed-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> > --- > CC: Anthony PERARD <anthony.perard@vates.tech> > CC: Stefano Stabellini <sstabellini@kernel.org> > CC: Michal Orzel <michal.orzel@amd.com> > CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> > > v2: > * Use dom0_rootfs_extra_{un,}comp arrays > --- > automation/scripts/qubes-x86-64.sh | 18 ++++++++++++----- > .../scripts/xilinx-smoke-dom0-x86_64.sh | 20 ++++++++++++------- > 2 files changed, 26 insertions(+), 12 deletions(-) > > diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh > index 8e86940c6eff..5ec6eff6c469 100755 > --- a/automation/scripts/qubes-x86-64.sh > +++ b/automation/scripts/qubes-x86-64.sh > @@ -1,4 +1,4 @@ > -#!/bin/sh > +#!/bin/bash > > set -ex -o pipefail > > @@ -22,6 +22,8 @@ domU_type="pvh" > domU_vif="'bridge=xenbr0'," > domU_extra_config= > retrieve_xml= > +dom0_rootfs_extra_comp=() > +dom0_rootfs_extra_uncomp=() > > case "${test_variant}" in > ### test: smoke test & smoke test PVH & smoke test HVM & smoke test PVSHIM > @@ -187,10 +189,16 @@ Kernel \r on an \m (\l) > rm -rf rootfs > fi > > -# Dom0 rootfs > -cp binaries/ucode.cpio binaries/dom0-rootfs.cpio.gz > -cat binaries/rootfs.cpio.gz >> binaries/dom0-rootfs.cpio.gz > -cat binaries/xen-tools.cpio.gz >> binaries/dom0-rootfs.cpio.gz > +# Dom0 rootfs. The order or concatination is important; ucode wants to come of > +# first, and all uncompressed must be ahead of compressed. > +dom0_rootfs_parts=( > + binaries/ucode.cpio > + "${dom0_rootfs_extra_uncomp[@]}" > + binaries/rootfs.cpio.gz > + binaries/xen-tools.cpio.gz > + "${dom0_rootfs_extra_comp[@]}" > +) > +cat "${dom0_rootfs_parts[@]}" > binaries/dom0-rootfs.cpio.gz > > # test-local configuration > mkdir -p rootfs > diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh > index 8f02fa73bd06..45121f39400a 100755 > --- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh > +++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh > @@ -28,6 +28,8 @@ extra = "root=/dev/ram0 console=hvc0" > memory = 512 > ' > DOMU_CFG_EXTRA="" > +dom0_rootfs_extra_comp=() > +dom0_rootfs_extra_uncomp=() > > # Select test variant. > if [ "${TEST}" = "ping" ]; then > @@ -71,6 +73,7 @@ do > sleep 1 > done | argo-exec -p 28333 -d 0 -- /bin/echo > " > + dom0_rootfs_extra_comp+=(binaries/argo.cpio.gz) > DOM0_CMD=" > insmod /lib/modules/\$(uname -r)/updates/xen-argo.ko > xl -vvv create /etc/xen/domU.cfg > @@ -103,13 +106,16 @@ find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz > cd .. > rm -rf rootfs > > -# Dom0 rootfs > -cp binaries/ucode.cpio binaries/dom0-rootfs.cpio.gz > -cat binaries/rootfs.cpio.gz >> binaries/dom0-rootfs.cpio.gz > -cat binaries/xen-tools.cpio.gz >> binaries/dom0-rootfs.cpio.gz > -if [[ "${TEST}" == argo ]]; then > - cat binaries/argo.cpio.gz >> binaries/dom0-rootfs.cpio.gz > -fi > +# Dom0 rootfs. The order or concatination is important; ucode wants to come > +# first, and all uncompressed must be ahead of compressed. > +dom0_rootfs_parts=( > + binaries/ucode.cpio > + "${dom0_rootfs_extra_uncomp[@]}" > + binaries/rootfs.cpio.gz > + binaries/xen-tools.cpio.gz > + "${dom0_rootfs_extra_comp[@]}" > +) > +cat "${dom0_rootfs_parts[@]}" > binaries/dom0-rootfs.cpio.gz > > # test-local configuration > mkdir -p rootfs > -- > 2.39.5 > -- 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
* [PATCH 2/2] CI: Adjust how domU is packaged in dom0 2025-06-02 17:46 [PATCH 0/2] CI: Improve domU handling Andrew Cooper 2025-06-02 17:46 ` [PATCH 1/2] CI: Use bash arrays to simplfy dom0 rootfs construction Andrew Cooper @ 2025-06-02 17:46 ` Andrew Cooper 2025-06-02 22:53 ` Stefano Stabellini 2025-06-03 10:51 ` Marek Marczykowski-Górecki 1 sibling, 2 replies; 7+ messages in thread From: Andrew Cooper @ 2025-06-02 17:46 UTC (permalink / raw) To: Xen-devel Cc: Andrew Cooper, Anthony PERARD, Stefano Stabellini, Michal Orzel, Marek Marczykowski-Górecki Package domU for dom0 and insert into the uncompressed part of dom0's rootfs, rather than recompressing it as part of the overlay. For Qubes, this avoids putting the domU kernel in dom0's rootfs for tests which aren't going to boot a guest. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> --- CC: Anthony PERARD <anthony.perard@vates.tech> CC: Stefano Stabellini <sstabellini@kernel.org> CC: Michal Orzel <michal.orzel@amd.com> CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> v2: * Rebase over dom0_rootfs_extra_{un,}comp changes * Move back into boot. There seem to be objections to having it in root. --- automation/scripts/qubes-x86-64.sh | 17 ++++++++++++----- automation/scripts/xilinx-smoke-dom0-x86_64.sh | 14 +++++++++++--- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh index 5ec6eff6c469..d9ecc569c956 100755 --- a/automation/scripts/qubes-x86-64.sh +++ b/automation/scripts/qubes-x86-64.sh @@ -156,7 +156,7 @@ esac domU_config=" type = '${domU_type}' name = 'domU' -kernel = '/boot/vmlinuz' +kernel = '/boot/vmlinuz-domU' ramdisk = '/boot/initrd-domU' cmdline = 'root=/dev/ram0 console=hvc0' memory = 512 @@ -187,6 +187,17 @@ Kernel \r on an \m (\l) find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz cd .. rm -rf rootfs + + # Package domU kernel+rootfs in /boot for dom0 (uncompressed) + mkdir -p rootfs/boot + cd rootfs + cp ../binaries/bzImage boot/vmlinuz-domU + cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU + find . | cpio -H newc -o > ../binaries/domU-in-dom0.cpio + cd .. + rm -rf rootfs + + dom0_rootfs_extra_uncomp+=(binaries/domU-in-dom0.cpio) fi # Dom0 rootfs. The order or concatination is important; ucode wants to come @@ -241,10 +252,6 @@ mkdir -p etc/default 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 -if [ -n "$domU_check" ]; then - cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU -fi find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz cd .. diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh index 45121f39400a..8981aee5d4f2 100755 --- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh +++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh @@ -22,7 +22,7 @@ DOMU_CMD="" DOMU_CFG=' type = "pvh" name = "domU" -kernel = "/boot/vmlinuz" +kernel = "/boot/vmlinuz-domU" ramdisk = "/boot/initrd-domU" extra = "root=/dev/ram0 console=hvc0" memory = 512 @@ -106,10 +106,20 @@ find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz cd .. rm -rf rootfs +# Package domU kernel+rootfs in /boot for dom0 (uncompressed) +mkdir -p rootfs/boot +cd rootfs +cp ../binaries/bzImage boot/vmlinuz-domU +cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU +find . | cpio -H newc -o > ../binaries/domU-in-dom0.cpio +cd .. +rm -rf rootfs + # Dom0 rootfs. The order or concatination is important; ucode wants to come # first, and all uncompressed must be ahead of compressed. dom0_rootfs_parts=( binaries/ucode.cpio + binaries/domU-in-dom0.cpio "${dom0_rootfs_extra_uncomp[@]}" binaries/rootfs.cpio.gz binaries/xen-tools.cpio.gz @@ -131,8 +141,6 @@ echo "${DOMU_CFG}${DOMU_CFG_EXTRA}" > etc/xen/domU.cfg 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 find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz cd .. -- 2.39.5 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] CI: Adjust how domU is packaged in dom0 2025-06-02 17:46 ` [PATCH 2/2] CI: Adjust how domU is packaged in dom0 Andrew Cooper @ 2025-06-02 22:53 ` Stefano Stabellini 2025-06-03 10:51 ` Marek Marczykowski-Górecki 1 sibling, 0 replies; 7+ messages in thread From: Stefano Stabellini @ 2025-06-02 22:53 UTC (permalink / raw) To: Andrew Cooper Cc: Xen-devel, Anthony PERARD, Stefano Stabellini, Michal Orzel, Marek Marczykowski-Górecki [-- Attachment #1: Type: text/plain, Size: 4125 bytes --] On Mon, 2 Jun 2025, Andrew Cooper wrote: > Package domU for dom0 and insert into the uncompressed part of dom0's rootfs, > rather than recompressing it as part of the overlay. > > For Qubes, this avoids putting the domU kernel in dom0's rootfs for tests > which aren't going to boot a guest. > > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > --- > CC: Anthony PERARD <anthony.perard@vates.tech> > CC: Stefano Stabellini <sstabellini@kernel.org> > CC: Michal Orzel <michal.orzel@amd.com> > CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> > > v2: > * Rebase over dom0_rootfs_extra_{un,}comp changes > * Move back into boot. There seem to be objections to having it in root. > --- > automation/scripts/qubes-x86-64.sh | 17 ++++++++++++----- > automation/scripts/xilinx-smoke-dom0-x86_64.sh | 14 +++++++++++--- > 2 files changed, 23 insertions(+), 8 deletions(-) > > diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh > index 5ec6eff6c469..d9ecc569c956 100755 > --- a/automation/scripts/qubes-x86-64.sh > +++ b/automation/scripts/qubes-x86-64.sh > @@ -156,7 +156,7 @@ esac > domU_config=" > type = '${domU_type}' > name = 'domU' > -kernel = '/boot/vmlinuz' > +kernel = '/boot/vmlinuz-domU' > ramdisk = '/boot/initrd-domU' > cmdline = 'root=/dev/ram0 console=hvc0' > memory = 512 > @@ -187,6 +187,17 @@ Kernel \r on an \m (\l) > find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz > cd .. > rm -rf rootfs > + > + # Package domU kernel+rootfs in /boot for dom0 (uncompressed) > + mkdir -p rootfs/boot > + cd rootfs > + cp ../binaries/bzImage boot/vmlinuz-domU > + cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU > + find . | cpio -H newc -o > ../binaries/domU-in-dom0.cpio > + cd .. > + rm -rf rootfs > + > + dom0_rootfs_extra_uncomp+=(binaries/domU-in-dom0.cpio) > fi > > # Dom0 rootfs. The order or concatination is important; ucode wants to come > @@ -241,10 +252,6 @@ mkdir -p etc/default > 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 > -if [ -n "$domU_check" ]; then > - cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU > -fi > find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz > cd .. > > diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh > index 45121f39400a..8981aee5d4f2 100755 > --- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh > +++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh > @@ -22,7 +22,7 @@ DOMU_CMD="" > DOMU_CFG=' > type = "pvh" > name = "domU" > -kernel = "/boot/vmlinuz" > +kernel = "/boot/vmlinuz-domU" > ramdisk = "/boot/initrd-domU" > extra = "root=/dev/ram0 console=hvc0" > memory = 512 > @@ -106,10 +106,20 @@ find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz > cd .. > rm -rf rootfs > > +# Package domU kernel+rootfs in /boot for dom0 (uncompressed) > +mkdir -p rootfs/boot > +cd rootfs > +cp ../binaries/bzImage boot/vmlinuz-domU > +cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU > +find . | cpio -H newc -o > ../binaries/domU-in-dom0.cpio > +cd .. > +rm -rf rootfs > + > # Dom0 rootfs. The order or concatination is important; ucode wants to come > # first, and all uncompressed must be ahead of compressed. > dom0_rootfs_parts=( > binaries/ucode.cpio > + binaries/domU-in-dom0.cpio > "${dom0_rootfs_extra_uncomp[@]}" > binaries/rootfs.cpio.gz > binaries/xen-tools.cpio.gz > @@ -131,8 +141,6 @@ echo "${DOMU_CFG}${DOMU_CFG_EXTRA}" > etc/xen/domU.cfg > 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 > find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz > cd .. > > -- > 2.39.5 > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] CI: Adjust how domU is packaged in dom0 2025-06-02 17:46 ` [PATCH 2/2] CI: Adjust how domU is packaged in dom0 Andrew Cooper 2025-06-02 22:53 ` Stefano Stabellini @ 2025-06-03 10:51 ` Marek Marczykowski-Górecki 1 sibling, 0 replies; 7+ messages in thread From: Marek Marczykowski-Górecki @ 2025-06-03 10:51 UTC (permalink / raw) To: Andrew Cooper; +Cc: Xen-devel, Anthony PERARD, Stefano Stabellini, Michal Orzel [-- Attachment #1: Type: text/plain, Size: 4351 bytes --] On Mon, Jun 02, 2025 at 06:46:18PM +0100, Andrew Cooper wrote: > Package domU for dom0 and insert into the uncompressed part of dom0's rootfs, > rather than recompressing it as part of the overlay. > > For Qubes, this avoids putting the domU kernel in dom0's rootfs for tests > which aren't going to boot a guest. > > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> > --- > CC: Anthony PERARD <anthony.perard@vates.tech> > CC: Stefano Stabellini <sstabellini@kernel.org> > CC: Michal Orzel <michal.orzel@amd.com> > CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> > > v2: > * Rebase over dom0_rootfs_extra_{un,}comp changes > * Move back into boot. There seem to be objections to having it in root. > --- > automation/scripts/qubes-x86-64.sh | 17 ++++++++++++----- > automation/scripts/xilinx-smoke-dom0-x86_64.sh | 14 +++++++++++--- > 2 files changed, 23 insertions(+), 8 deletions(-) > > diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh > index 5ec6eff6c469..d9ecc569c956 100755 > --- a/automation/scripts/qubes-x86-64.sh > +++ b/automation/scripts/qubes-x86-64.sh > @@ -156,7 +156,7 @@ esac > domU_config=" > type = '${domU_type}' > name = 'domU' > -kernel = '/boot/vmlinuz' > +kernel = '/boot/vmlinuz-domU' > ramdisk = '/boot/initrd-domU' > cmdline = 'root=/dev/ram0 console=hvc0' > memory = 512 > @@ -187,6 +187,17 @@ Kernel \r on an \m (\l) > find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz > cd .. > rm -rf rootfs > + > + # Package domU kernel+rootfs in /boot for dom0 (uncompressed) > + mkdir -p rootfs/boot > + cd rootfs > + cp ../binaries/bzImage boot/vmlinuz-domU > + cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU > + find . | cpio -H newc -o > ../binaries/domU-in-dom0.cpio > + cd .. > + rm -rf rootfs > + > + dom0_rootfs_extra_uncomp+=(binaries/domU-in-dom0.cpio) > fi > > # Dom0 rootfs. The order or concatination is important; ucode wants to come > @@ -241,10 +252,6 @@ mkdir -p etc/default > 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 > -if [ -n "$domU_check" ]; then > - cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU > -fi > find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz > cd .. > > diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh > index 45121f39400a..8981aee5d4f2 100755 > --- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh > +++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh > @@ -22,7 +22,7 @@ DOMU_CMD="" > DOMU_CFG=' > type = "pvh" > name = "domU" > -kernel = "/boot/vmlinuz" > +kernel = "/boot/vmlinuz-domU" > ramdisk = "/boot/initrd-domU" > extra = "root=/dev/ram0 console=hvc0" > memory = 512 > @@ -106,10 +106,20 @@ find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz > cd .. > rm -rf rootfs > > +# Package domU kernel+rootfs in /boot for dom0 (uncompressed) > +mkdir -p rootfs/boot > +cd rootfs > +cp ../binaries/bzImage boot/vmlinuz-domU > +cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU > +find . | cpio -H newc -o > ../binaries/domU-in-dom0.cpio > +cd .. > +rm -rf rootfs > + > # Dom0 rootfs. The order or concatination is important; ucode wants to come > # first, and all uncompressed must be ahead of compressed. > dom0_rootfs_parts=( > binaries/ucode.cpio > + binaries/domU-in-dom0.cpio > "${dom0_rootfs_extra_uncomp[@]}" > binaries/rootfs.cpio.gz > binaries/xen-tools.cpio.gz > @@ -131,8 +141,6 @@ echo "${DOMU_CFG}${DOMU_CFG_EXTRA}" > etc/xen/domU.cfg > 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 > find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz > cd .. > > -- > 2.39.5 > -- 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:[~2025-06-03 10:51 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-06-02 17:46 [PATCH 0/2] CI: Improve domU handling Andrew Cooper 2025-06-02 17:46 ` [PATCH 1/2] CI: Use bash arrays to simplfy dom0 rootfs construction Andrew Cooper 2025-06-02 22:49 ` Stefano Stabellini 2025-06-03 10:50 ` Marek Marczykowski-Górecki 2025-06-02 17:46 ` [PATCH 2/2] CI: Adjust how domU is packaged in dom0 Andrew Cooper 2025-06-02 22:53 ` Stefano Stabellini 2025-06-03 10:51 ` 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.