From patchwork Fri Feb 17 10:01:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "MOESSBAUER, Felix" X-Patchwork-Id: 2660 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Fri, 17 Feb 2023 11:02:11 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-lf1-f64.google.com (mail-lf1-f64.google.com [209.85.167.64]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 31HA2AfH022265 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Feb 2023 11:02:10 +0100 Received: by mail-lf1-f64.google.com with SMTP id bi4-20020a0565120e8400b004b8825890a1sf67414lfb.1; Fri, 17 Feb 2023 02:02:10 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1676628124; cv=pass; d=google.com; s=arc-20160816; b=geEe9i59Vr0vF4l0DUegtlhsvd1SaYftNinGzey0w1ZUiD5dBgI6uxlXpmT+54iVPj pISXIILFZ/XjCDCbT74PkXuXtOo2zHWKC+77iPTp4+4b1HA9difK6UyLINBa1Q8KziKW KHjRi/ae2um37c9i+SxhQlAKTLCsFA27cN4wbKS5C50Sx8ks3hC28M/NnAlnMNq3NLGx JvCZRgD8lk3MtfRFHAF89QaNxq24bJDKeqnpRAPMpmZrLfwjA7u8lZ8B9OvpvyztiaKq IIEAYsnKS/c9cC45k2e1d8yyo9XP360OmniGILeTGOD1QsWKrWZsy46LYQoNJNrFe7lj Nb0A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:feedback-id:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:sender :dkim-signature; bh=XMDTHpMZQGR1m4p1DOCA1lFbRd4EgHzznTKOR5c4jBI=; b=aDEnP5MaoRPRtjHOdxcE90xzFCs+MdYbgLNOknuQX4jUfQZpQGa/YBJ93BvbNG1coZ uXFzHXTKL73WjIBrvRi3wqiFd6AIHLtSSd4UuGNiMMX2DjxxWx/M7J8JAGd8EIegxR2X gXmZmCB2CgQZyVavKZxHU1XlIRqnVBWn4F8kOLXRim1U8bzATVdstDA1DspABDcETTjA MPKFbmU9RxtPXYBP2YddpJcptshDrT9nL0mLJbjpoquqlQh35mR0sZhbPgbX1nMDI8Lk UcxBGoyUEp3VlTOTN/to7aMIO+uOCRbnCr6XLv8w61pFXfkxDgVOP/KrLW2biCTJ/eZ8 2ESA== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=o8YzyNh7; spf=pass (google.com: domain of fm-72506-202302171002009320861578a92192b4-oqce_w@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) smtp.mailfrom=fm-72506-202302171002009320861578a92192b4-OQce_w@rts-flowmailer.siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20210112; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:feedback-id:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=XMDTHpMZQGR1m4p1DOCA1lFbRd4EgHzznTKOR5c4jBI=; b=gkmh0RjxQaQsVmc2QYt9xsTZXwFq0va+Axq5NH1awxorwsUsCfJmoXlulq0LvsOSyt DAbnlw5R9gf2ym7AiinfdNHeS8iWktgZHAOOWr8L80iw4Tk/zDe6zYDge/0ZQDC3Xgsl Pn6fj7TqgYlo3GA2NecqQ+mtMunuymGiSrPhUB9WnX7B9y+JV4J5PpwFV9AW3SKun4cQ d5HMUj+wrUt66nn+OhbDp/MckTyJkXQVHkp+CGP8AksGQcMY19zuGT3o+db4bXD18mll rjfZeuXh0pObc3lQpQ/jae2BVoTlZr9QCBCwlWuLFSqYX3YVYoXHyMf4S3T9oH/zYPkq R8kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:sender:from:to:cc:subject:date:message-id :reply-to; bh=XMDTHpMZQGR1m4p1DOCA1lFbRd4EgHzznTKOR5c4jBI=; b=bsbP206AFPqpnhA63L3fot2YAYIvPI/8oI8fu7Wsnar8JVRyqSRPw+nlL/G3c/8t7+ /md/XHt2CSxsBZLt3YnX/eMveXwL5CH/Qnk6tpgk31bS/tyAHaf80WSdOaX3X1p2l4EW jqijawJ/ZqJukVI+xAjhGiiOKKWJR4UxGqdF/Gdeg7ysOYCf78tfJi4454Gqd0wWndrV TnbYqC/8HFKIkV3DV18YPknYXglAu9AlkHqa8RNAtQvamfkVYZhKQnKmmxv0K5BxIza1 aoF+IaeEC2yi5iTnY2pT2DjwsLZqXs2d5oL0l1l7xFo01pLOM/NQomITSL5uxG6qskhT 5f8g== Sender: isar-users@googlegroups.com X-Gm-Message-State: AO0yUKV2uilfnKw8AyluBBTXZrNLaLJuLb4qoxpLUMsYtJDr5Q3L+IZC sQ+WAThh2MJMfo2krM7IlEk= X-Google-Smtp-Source: AK7set/X77ErtVy3rlZnz96OQAy55A/Hef/ka/6AedM+7K9kReGa6GCx1+TOgfQJl8aDQB14qDui3A== X-Received: by 2002:ac2:5221:0:b0:4db:44f9:a641 with SMTP id i1-20020ac25221000000b004db44f9a641mr218693lfl.6.1676628124358; Fri, 17 Feb 2023 02:02:04 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:651c:b0c:b0:293:186a:1056 with SMTP id b12-20020a05651c0b0c00b00293186a1056ls112163ljr.10.-pod-prod-gmail; Fri, 17 Feb 2023 02:02:02 -0800 (PST) X-Received: by 2002:a05:651c:b20:b0:293:3dd6:89a4 with SMTP id b32-20020a05651c0b2000b002933dd689a4mr4063916ljr.34.1676628122545; Fri, 17 Feb 2023 02:02:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676628122; cv=none; d=google.com; s=arc-20160816; b=E1dCYbH5xLskP5Nx9dlL+efNJORJeA49AvK+RfctEE2Y+mau8Kd6OoN7GN6/zUHhUZ DQ5aBoPzsff9Zhp4ObTIhurpxViHoTQjnZHKJBRne7sFZOKuMD9iJ/LIYjUMW+cz2zK0 PiYn0pU6QeYH+AtHHJ/0+B5O4lGJ0rsX31WyUvMZzccfUxlVkxpZBjiWHVAXt47ddTBW 1eOUhVgfXdWWrboWvWkoqP184hs1xIDWUMbW7S04kGK3iLs+eP8QCMKYkP51XS8pxlMy 0jHsybdz4VyENAq4sfWvYJunSZyPnkcJ6iipMFDuhNvDyLroH8mGfO/S1ABh7QTyigyr QvdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=FkZyZHXAY3quiF16advfPhb2wh47Rs61jwztLcwkAEc=; b=Vfbw6sgGRjSbBV70yxSEOjeQ+n3H5OrEC/0jHsbnx6sJboAE5bn4Ua9VNP3UMu7EQk tht6S3BBBH3SsfuwzALJ1CKzkPf+zo7NZ3UebzfUlIwZMHKoV67pv+9WdkEbtJ0/jn/5 7fHmSFSnt/x5j9LXdcW5Xyi39CnFNjjI9R1FLWdDoUfpKlwBiqaKE3l0x0C3RcWDupG4 po0TWNmd8fbOFPvQBSYWKJ58+qBOefCctmnmF9DwCNWSjD3x/yssTTLDgCH0G7M6+Xwq 6va+5tL9e1C4jNeG6IarltKnUY/UFRm1xKFJn0krz+WDeZ5vaCbEi29UXTEvcGZSUUCD 83fg== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=o8YzyNh7; spf=pass (google.com: domain of fm-72506-202302171002009320861578a92192b4-oqce_w@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) smtp.mailfrom=fm-72506-202302171002009320861578a92192b4-OQce_w@rts-flowmailer.siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mta-65-226.siemens.flowmailer.net (mta-65-226.siemens.flowmailer.net. [185.136.65.226]) by gmr-mx.google.com with ESMTPS id o16-20020a05651c051000b0028ffa3d673asi122741ljp.3.2023.02.17.02.02.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 17 Feb 2023 02:02:02 -0800 (PST) Received-SPF: pass (google.com: domain of fm-72506-202302171002009320861578a92192b4-oqce_w@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) client-ip=185.136.65.226; Received: by mta-65-226.siemens.flowmailer.net with ESMTPSA id 202302171002009320861578a92192b4 for ; Fri, 17 Feb 2023 11:02:01 +0100 From: Felix Moessbauer To: isar-users@googlegroups.com Cc: adriaan.schmidt@siemens.com, jan.kiszka@siemens.com, Felix Moessbauer Subject: [PATCH 3/3] fix race-cond between default and custom initrd Date: Fri, 17 Feb 2023 10:01:18 +0000 Message-Id: <20230217100118.2912985-4-felix.moessbauer@siemens.com> In-Reply-To: <20230217100118.2912985-1-felix.moessbauer@siemens.com> References: <20230217100118.2912985-1-felix.moessbauer@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-72506:519-21489:flowmailer X-Original-Sender: felix.moessbauer@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=o8YzyNh7; spf=pass (google.com: domain of fm-72506-202302171002009320861578a92192b4-oqce_w@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) smtp.mailfrom=fm-72506-202302171002009320861578a92192b4-OQce_w@rts-flowmailer.siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= This patch fixes a data race happening when building a custom initrd. Previously, both custom and default initrds were deployed to the image deploy dir. The race is fixed by conditionally deploying either the custom or the default one. For that, we introduce a new variable INITRD_DEPLOY_FILE which provides the name of the initrd in the deploy directory. The existing INITRD_IMAGE variable is defaulted to the empty string and used to control if a custom initrd is requrested. Only if this variable is empty, the default one is deployed. Signed-off-by: Felix Moessbauer --- meta/classes/image.bbclass | 24 ++++++++++++++---------- scripts/start_vm | 4 ++-- testsuite/start_vm.py | 2 +- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index e799d1d4..0d5a521e 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -3,7 +3,7 @@ # Make workdir and stamps machine-specific without changing common PN target WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PN}-${MACHINE}/${PV}-${PR}" -DEPLOYDIR = "${WORKDIR}/deploy-${PN}" +DEPLOYDIR = "${WORKDIR}/deploy" STAMP = "${STAMPS_DIR}/${DISTRO}-${DISTRO_ARCH}/${PN}-${MACHINE}/${PV}-${PR}" STAMPCLEAN = "${STAMPS_DIR}/${DISTRO}-${DISTRO_ARCH}/${PN}-${MACHINE}/*-*" @@ -22,8 +22,9 @@ IMAGE_INSTALL += "${KERNEL_IMAGE_PKG}" IMAGE_FULLNAME = "${PN}-${DISTRO}-${MACHINE}" # These variables are used by wic and start_vm -KERNEL_IMAGE ?= "${IMAGE_FULLNAME}-${KERNEL_FILE}" -INITRD_IMAGE ?= "${IMAGE_FULLNAME}-initrd.img" +KERNEL_IMAGE = "${IMAGE_FULLNAME}-${KERNEL_FILE}" +INITRD_IMAGE ?= "" +INITRD_DEPLOY_FILE = "${@d.getVar('INITRD_IMAGE') or '${IMAGE_FULLNAME}-initrd.img')" # This defines the deployed dtbs for reuse by imagers DTB_FILES ?= "" @@ -353,7 +354,7 @@ EOF # Default kernel, initrd and dtb image deploy paths (inside imager) KERNEL_IMG = "${PP_DEPLOY}/${KERNEL_IMAGE}" -INITRD_IMG = "${PP_DEPLOY}/${INITRD_IMAGE}" +INITRD_IMG = "${PP_DEPLOY}/${INITRD_DEPLOY_FILE}" # only one dtb file supported, pick the first DTB_IMG = "${PP_DEPLOY}/${@(d.getVar('DTB_FILES').split() or [''])[0]}" @@ -370,12 +371,15 @@ do_copy_boot_files() { sudo cat "$kernel" > "${DEPLOYDIR}/${KERNEL_IMAGE}" fi - initrd="$(realpath -q '${IMAGE_ROOTFS}/initrd.img')" - if [ ! -f "$initrd" ]; then - initrd="$(realpath -q '${IMAGE_ROOTFS}/boot/initrd.img')" - fi - if [ -f "$initrd" ]; then - cp -f "$initrd" '${DEPLOYDIR}/${INITRD_IMAGE}' + # deploy default initrd if no custom one is build + if [ -e "${INITRD_IMAGE}" ]; then + initrd="$(realpath -q '${IMAGE_ROOTFS}/initrd.img')" + if [ ! -f "$initrd" ]; then + initrd="$(realpath -q '${IMAGE_ROOTFS}/boot/initrd.img')" + fi + if [ -f "$initrd" ]; then + cp -f "$initrd" '${DEPLOYDIR}/${INITRD_DEPLOY_FILE}' + fi fi for file in ${DTB_FILES}; do diff --git a/scripts/start_vm b/scripts/start_vm index 17091d72..8c696a4a 100755 --- a/scripts/start_vm +++ b/scripts/start_vm @@ -125,10 +125,10 @@ case "$IMAGE_FSTYPES" in readonly ROOTFS_IMAGE=$IMAGE_FULLNAME.ext4 eval $(bitbake -e mc:qemu$ARCH-$DISTRO:isar-image-base | grep "^KERNEL_IMAGE=") - eval $(bitbake -e mc:qemu$ARCH-$DISTRO:isar-image-base | grep "^INITRD_IMAGE=") + eval $(bitbake -e mc:qemu$ARCH-$DISTRO:isar-image-base | grep "^INITRD_DEPLOY_FILE=") QKERNEL=$IMAGE_DIR/${KERNEL_IMAGE} QINITRD=/dev/null - [ -n "$INITRD_IMAGE" ] && QINITRD=$IMAGE_DIR/${INITRD_IMAGE} + [ -n "$INITRD_DEPLOY_FILE" ] && QINITRD=$IMAGE_DIR/${INITRD_DEPLOY_FILE} if [ "$ARCH" = "riscv64" ]; then EXTRA_ARGS="$EXTRA_ARGS -device loader,file=$QKERNEL,addr=0x80200000" QKERNEL="/usr/lib/riscv64-linux-gnu/opensbi/qemu/virt/fw_jump.elf" diff --git a/testsuite/start_vm.py b/testsuite/start_vm.py index 82ecc17d..ba1ba127 100755 --- a/testsuite/start_vm.py +++ b/testsuite/start_vm.py @@ -35,7 +35,7 @@ def format_qemu_cmdline(arch, build, distro, out, pid, enforce_pcbios=False): if image_type == 'ext4': rootfs_image = 'isar-image-base-' + base + '-' + distro + '-qemu' + arch + '.ext4' kernel_image = deploy_dir_image + '/' + get_bitbake_var(bb_output, 'KERNEL_IMAGE') - initrd_image = get_bitbake_var(bb_output, 'INITRD_IMAGE') + initrd_image = get_bitbake_var(bb_output, 'INITRD_DEPLOY_FILE') if not initrd_image: initrd_image = '/dev/null'