From nobody Thu May 16 20:54:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=arm.com Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1677732345957973.9650880083699; Wed, 1 Mar 2023 20:45:45 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.504304.776937 (Exim 4.92) (envelope-from ) id 1pXaop-0004Xz-QN; Thu, 02 Mar 2023 04:45:27 +0000 Received: by outflank-mailman (output) from mailman id 504304.776937; Thu, 02 Mar 2023 04:45:27 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pXaop-0004Xo-LU; Thu, 02 Mar 2023 04:45:27 +0000 Received: by outflank-mailman (input) for mailman id 504304; Thu, 02 Mar 2023 04:45:26 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pXaoo-0004UF-Iz for xen-devel@lists.xenproject.org; Thu, 02 Mar 2023 04:45:26 +0000 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by se1-gles-sth1.inumbo.com (Halon) with ESMTP id 0bbdc0b0-b8b5-11ed-96a9-2f268f93b82a; Thu, 02 Mar 2023 05:45:25 +0100 (CET) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 36E2E1FB; Wed, 1 Mar 2023 20:46:07 -0800 (PST) Received: from comhpcalt.shanghai.arm.com (comhpcalt.shanghai.arm.com [10.169.190.22]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id CB8E83F99C; Wed, 1 Mar 2023 20:45:21 -0800 (PST) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 0bbdc0b0-b8b5-11ed-96a9-2f268f93b82a From: "jiamei.xie" To: xen-devel@lists.xenproject.org Cc: wei.chen@arm.com, jiamei.xie@arm.com, sstabellini@kernel.org, bertrand.marquis@arm.com, Doug Goldstein Subject: [PATCH 1/2] automation: arm64: Create a test job for testing static heap on qemu Date: Thu, 2 Mar 2023 04:44:20 +0000 Message-Id: <20230302044421.136068-2-jiamei.xie@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230302044421.136068-1-jiamei.xie@arm.com> References: <20230302044421.136068-1-jiamei.xie@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1677732347924100001 Content-Type: text/plain; charset="utf-8" From: Jiamei Xie Create a new test job, called qemu-smoke-dom0less-arm64-gcc-staticheap. Add property "xen,static-heap" under /chosen node to enable static-heap. If the domU can start successfully with static-heap enabled, then this test pass. Signed-off-by: Jiamei Xie --- automation/gitlab-ci/test.yaml | 16 ++++++++++++++++ .../scripts/qemu-smoke-dom0less-arm64.sh | 18 ++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml index 1c5f400b68..5a9b88477a 100644 --- a/automation/gitlab-ci/test.yaml +++ b/automation/gitlab-ci/test.yaml @@ -133,6 +133,22 @@ qemu-smoke-dom0less-arm64-gcc-debug-staticmem: - *arm64-test-needs - alpine-3.12-gcc-debug-arm64-staticmem =20 +qemu-smoke-dom0less-arm64-gcc-staticheap: + extends: .qemu-arm64 + script: + - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-heap 2>&1 | = tee ${LOGFILE} + needs: + - *arm64-test-needs + - alpine-3.12-gcc-arm64 + +qemu-smoke-dom0less-arm64-gcc-debug-staticheap: + extends: .qemu-arm64 + script: + - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-heap 2>&1 | = tee ${LOGFILE} + needs: + - *arm64-test-needs + - alpine-3.12-gcc-debug-arm64 + qemu-smoke-dom0less-arm64-gcc-boot-cpupools: extends: .qemu-arm64 script: diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/s= cripts/qemu-smoke-dom0less-arm64.sh index 182a4b6c18..4e73857199 100755 --- a/automation/scripts/qemu-smoke-dom0less-arm64.sh +++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh @@ -27,6 +27,11 @@ fi " fi =20 +if [[ "${test_variant}" =3D=3D "static-heap" ]]; then + passed=3D"${test_variant} test passed" + domU_check=3D"echo \"${passed}\"" +fi + if [[ "${test_variant}" =3D=3D "boot-cpupools" ]]; then # Check if domU0 (id=3D1) is assigned to Pool-1 with null scheduler passed=3D"${test_variant} test passed" @@ -128,6 +133,19 @@ if [[ "${test_variant}" =3D=3D "static-mem" ]]; then echo -e "\nDOMU_STATIC_MEM[0]=3D\"${domu_base} ${domu_size}\"" >> bina= ries/config fi =20 +if [[ "${test_variant}" =3D=3D "static-heap" ]]; then + # ImageBuilder uses the config file to create the uboot script. Device= tree + # will be set via the generated uboot script. + # The valid memory range is 0x40000000 to 0x80000000 as defined before. + # ImageBuillder sets the kernel and ramdisk range based on the file si= ze. + # It will use the memory range between 0x45600000 to 0x47AED1E8, so set + # memory range between 0x50000000 and 0x80000000 as static heap. + echo ' +STATIC_HEAP=3D"0x50000000 0x30000000" +# The size of static heap should be greater than the guest memory +DOMU_MEM[0]=3D"128"' >> binaries/config +fi + if [[ "${test_variant}" =3D=3D "boot-cpupools" ]]; then echo ' CPUPOOL[0]=3D"cpu@1 null" --=20 2.25.1 From nobody Thu May 16 20:54:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=arm.com Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1677732355319799.9065606092872; Wed, 1 Mar 2023 20:45:55 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.504306.776947 (Exim 4.92) (envelope-from ) id 1pXaov-0004tu-VX; Thu, 02 Mar 2023 04:45:33 +0000 Received: by outflank-mailman (output) from mailman id 504306.776947; Thu, 02 Mar 2023 04:45:33 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pXaov-0004tn-SS; Thu, 02 Mar 2023 04:45:33 +0000 Received: by outflank-mailman (input) for mailman id 504306; Thu, 02 Mar 2023 04:45:33 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pXaov-0004AQ-66 for xen-devel@lists.xenproject.org; Thu, 02 Mar 2023 04:45:33 +0000 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by se1-gles-flk1.inumbo.com (Halon) with ESMTP id 0f9f7499-b8b5-11ed-a550-8520e6686977; Thu, 02 Mar 2023 05:45:31 +0100 (CET) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CB24A1FB; Wed, 1 Mar 2023 20:46:13 -0800 (PST) Received: from comhpcalt.shanghai.arm.com (comhpcalt.shanghai.arm.com [10.169.190.22]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 6BD653F99C; Wed, 1 Mar 2023 20:45:28 -0800 (PST) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 0f9f7499-b8b5-11ed-a550-8520e6686977 From: "jiamei.xie" To: xen-devel@lists.xenproject.org Cc: wei.chen@arm.com, jiamei.xie@arm.com, sstabellini@kernel.org, bertrand.marquis@arm.com, Doug Goldstein Subject: [PATCH 2/2] automation: arm64: Create a test job for testing static shared memory on qemu Date: Thu, 2 Mar 2023 04:44:21 +0000 Message-Id: <20230302044421.136068-3-jiamei.xie@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230302044421.136068-1-jiamei.xie@arm.com> References: <20230302044421.136068-1-jiamei.xie@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1677732355599100001 Content-Type: text/plain; charset="utf-8" Create a new test job, called qemu-smoke-dom0less-arm64-gcc-static-shared-m= em. Adjust qemu-smoke-dom0less-arm64.sh script to accomodate the static shared memory test as a new test variant. The test variant is determined based on the first argument passed to the script. For testing static shared memory, the argument is 'static-shared-mem'. The test configures two dom0less DOMUs with a static shared memory region and adds a check in the init script. The check consists in comparing the contents of the /proc/device-tree/reser= ved-memory xen-shmem entry with the static shared memory range and id with which DOMUs were configured. If the memory layout is correct, a message gets printed by DOMU. At the end of the qemu run, the script searches for the specific message in the logs and fails if not found. Signed-off-by: jiamei.xie --- automation/gitlab-ci/build.yaml | 18 ++++++++++++ automation/gitlab-ci/test.yaml | 16 ++++++++++ .../scripts/qemu-smoke-dom0less-arm64.sh | 29 +++++++++++++++++++ 3 files changed, 63 insertions(+) diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.y= aml index 38bb22d860..820cc0af83 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -623,6 +623,24 @@ alpine-3.12-gcc-debug-arm64-staticmem: CONFIG_UNSUPPORTED=3Dy CONFIG_STATIC_MEMORY=3Dy =20 +alpine-3.12-gcc-arm64-static-shared-mem: + extends: .gcc-arm64-build + variables: + CONTAINER: alpine:3.12-arm64v8 + EXTRA_XEN_CONFIG: | + CONFIG_UNSUPPORTED=3Dy + CONFIG_STATIC_MEMORY=3Dy + CONFIG_STATIC_SHM=3Dy + +alpine-3.12-gcc-debug-arm64-static-shared-mem: + extends: .gcc-arm64-build-debug + variables: + CONTAINER: alpine:3.12-arm64v8 + EXTRA_XEN_CONFIG: | + CONFIG_UNSUPPORTED=3Dy + CONFIG_STATIC_MEMORY=3Dy + CONFIG_STATIC_SHM=3Dy + alpine-3.12-gcc-arm64-boot-cpupools: extends: .gcc-arm64-build variables: diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml index 5a9b88477a..f4d36babda 100644 --- a/automation/gitlab-ci/test.yaml +++ b/automation/gitlab-ci/test.yaml @@ -149,6 +149,22 @@ qemu-smoke-dom0less-arm64-gcc-debug-staticheap: - *arm64-test-needs - alpine-3.12-gcc-debug-arm64 =20 +qemu-smoke-dom0less-arm64-gcc-static-shared-mem: + extends: .qemu-arm64 + script: + - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-shared-mem = 2>&1 | tee ${LOGFILE} + needs: + - *arm64-test-needs + - alpine-3.12-gcc-arm64-static-shared-mem + +qemu-smoke-dom0less-arm64-gcc-debug-static-shared-mem: + extends: .qemu-arm64 + script: + - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-shared-mem = 2>&1 | tee ${LOGFILE} + needs: + - *arm64-test-needs + - alpine-3.12-gcc-debug-arm64-static-shared-mem + qemu-smoke-dom0less-arm64-gcc-boot-cpupools: extends: .qemu-arm64 script: diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/s= cripts/qemu-smoke-dom0less-arm64.sh index 4e73857199..fe3a282726 100755 --- a/automation/scripts/qemu-smoke-dom0less-arm64.sh +++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh @@ -32,6 +32,25 @@ if [[ "${test_variant}" =3D=3D "static-heap" ]]; then domU_check=3D"echo \"${passed}\"" fi =20 + +if [[ "${test_variant}" =3D=3D "static-shared-mem" ]]; then + passed=3D"${test_variant} test passed" + SHARED_MEM_HOST=3D"50000000" + SHARED_MEM_GUEST=3D"4000000" + SHARED_MEM_SIZE=3D"10000000" + SHARED_MEM_ID=3D"my-shared-mem-0" + + domU_check=3D" +current_id=3D\$(cat /proc/device-tree/reserved-memory/xen-shmem@4000000/xe= n,id 2>/dev/null) +expected_id=3D\"\$(echo ${SHARED_MEM_ID})\" +current_reg=3D\$(hexdump -e '16/1 \"%02x\"' /proc/device-tree/reserved-mem= ory/xen-shmem@4000000/reg 2>/dev/null) +expected_reg=3D$(printf \"%016x%016x\" 0x${SHARED_MEM_GUEST} 0x${SHARED_ME= M_SIZE}) +if [[ \"\${expected_reg}\" =3D=3D \"\${current_reg}\" && \"\${current_id}\= " =3D=3D \"\${expected_id}\" ]]; then + echo \"${passed}\" +fi + " +fi + if [[ "${test_variant}" =3D=3D "boot-cpupools" ]]; then # Check if domU0 (id=3D1) is assigned to Pool-1 with null scheduler passed=3D"${test_variant} test passed" @@ -133,6 +152,16 @@ if [[ "${test_variant}" =3D=3D "static-mem" ]]; then echo -e "\nDOMU_STATIC_MEM[0]=3D\"${domu_base} ${domu_size}\"" >> bina= ries/config fi =20 +if [[ "${test_variant}" =3D=3D "static-shared-mem" ]]; then +echo "NUM_DOMUS=3D2 +DOMU_SHARED_MEM[0]=3D\""0x${SHARED_MEM_HOST} 0x${SHARED_MEM_GUEST} 0x${SHA= RED_MEM_SIZE}"\" +DOMU_SHARED_MEM_ID[0]=3D"${SHARED_MEM_ID}" +DOMU_KERNEL[1]=3D\"Image\" +DOMU_RAMDISK[1]=3D\"initrd\" +DOMU_SHARED_MEM[1]=3D\"0x${SHARED_MEM_HOST} 0x${SHARED_MEM_GUEST} 0x${SHAR= ED_MEM_SIZE}\" +DOMU_SHARED_MEM_ID[1]=3D\"${SHARED_MEM_ID}\"" >> binaries/config +fi + if [[ "${test_variant}" =3D=3D "static-heap" ]]; then # ImageBuilder uses the config file to create the uboot script. Device= tree # will be set via the generated uboot script. --=20 2.25.1