From nobody Sun May 19 02:06:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1624977843060531.8898783479264; Tue, 29 Jun 2021 07:44:03 -0700 (PDT) Received: from localhost ([::1]:33174 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lyEy1-0001BW-SO for importer@patchew.org; Tue, 29 Jun 2021 10:44:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57470) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lyEr0-0005Ov-H4 for qemu-devel@nongnu.org; Tue, 29 Jun 2021 10:36:46 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:37771) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lyEqv-0005hn-Rz for qemu-devel@nongnu.org; Tue, 29 Jun 2021 10:36:45 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-364-hYkEuscTPZCDOFqfqA0s_Q-1; Tue, 29 Jun 2021 10:36:39 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 71AB51922962; Tue, 29 Jun 2021 14:36:38 +0000 (UTC) Received: from laptop.redhat.com (ovpn-113-168.ams2.redhat.com [10.36.113.168]) by smtp.corp.redhat.com (Postfix) with ESMTP id 79859163C6; Tue, 29 Jun 2021 14:36:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624977400; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7iNoAod/IX0o6i11KLUNf1Gz+/+TlQgVAoGKZAHtvAA=; b=HQ/7k1vWB4ChBNGFsodTUgimaNm5zl1Jek1g0HuRKnpl23kOGycuQm2WjF5w6mknnNYdyo RYI242yjVsjyk2MvkTv2UddbQl4SLP+6UVX6lE9FLEKFQmKANUJcLfZFp/uuGmzU42ZY30 mea9PgxcOvxaaR/zb8VYUn7ws0rIHVk= X-MC-Unique: hYkEuscTPZCDOFqfqA0s_Q-1 From: Eric Auger To: eric.auger.pro@gmail.com, eric.auger@redhat.com, qemu-devel@nongnu.org, philmd@redhat.com, crosa@redhat.com, wainersm@redhat.com Subject: [PATCH v4 1/4] Acceptance Tests: Add default kernel params and pxeboot url to the KNOWN_DISTROS collection Date: Tue, 29 Jun 2021 16:36:18 +0200 Message-Id: <20210629143621.907831-2-eric.auger@redhat.com> In-Reply-To: <20210629143621.907831-1-eric.auger@redhat.com> References: <20210629143621.907831-1-eric.auger@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=eric.auger@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=eric.auger@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.435, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: wrampazz@redhat.com, peterx@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" When running LinuxTests we may need to run the guest with custom params. It is practical to store the pxeboot URL and the default kernel params so that the tests just need to fetch those and augment the kernel params. Signed-off-by: Eric Auger Reviewed-by: Willian Rampazzo --- v2 -> v3: - add fed32 and fed33 checksums v3 -> v4: - fix indent issues (Wainer) - use dl.fedoraproject.org instead of mirror --- tests/acceptance/avocado_qemu/__init__.py | 52 ++++++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/a= vocado_qemu/__init__.py index 81ac90bebb..64e9c1952d 100644 --- a/tests/acceptance/avocado_qemu/__init__.py +++ b/tests/acceptance/avocado_qemu/__init__.py @@ -305,17 +305,59 @@ def ssh_command(self, command): 'fedora': { '31': { 'x86_64': - {'checksum': 'e3c1b309d9203604922d6e255c2c5d098a309c2d46215d8f= c026954f3c5c27a0'}, + {'checksum': 'e3c1b309d9203604922d6e255c2c5d098a309c2d46215d8f= c026954f3c5c27a0', + 'pxeboot_url': "https://archives.fedoraproject.org/pub/archiv= e/fedora/" + "linux/releases/31/Everything/x86_64/os/images= /pxeboot/", + 'kernel_params': "root=3DUUID=3Db1438b9b-2cab-4065-a99a-08a96= 687f73c ro " + "no_timer_check net.ifnames=3D0 " + "console=3Dtty1 console=3DttyS0,115200n8"}, 'aarch64': - {'checksum': '1e18d9c0cf734940c4b5d5ec592facaed2af0ad0329383d5= 639c997fdf16fe49'}, + {'checksum': '1e18d9c0cf734940c4b5d5ec592facaed2af0ad0329383d5= 639c997fdf16fe49', + 'pxeboot_url': "https://archives.fedoraproject.org/pub/archiv= e/fedora/" + "linux/releases/31/Everything/aarch64/os/image= s/pxeboot/", + 'kernel_params': "root=3DUUID=3Db6950a44-9f3c-4076-a9c2-355e8= 475b0a7 ro " + "earlyprintk=3Dpl011,0x9000000 ignore_loglev= el " + "no_timer_check printk.time=3D1 rd_NO_PLYMOU= TH " + "console=3DttyAMA0 "}, 'ppc64': {'checksum': '7c3528b85a3df4b2306e892199a9e1e43f991c506f2cc390= dc4efa2026ad2f58'}, 's390x': {'checksum': '4caaab5a434fd4d1079149a072fdc7891e354f834d355069= ca982fdcaf5a122d'}, } + , + '32': { + 'aarch64': + {'kernel_params': "root=3DUUID=3D3df75b65-be8d-4db4-8655-14d95= c0e90c5 ro " + "no_timer_check net.ifnames=3D0 console=3Dtt= y1 " + "console=3DttyS0,115200n8 ", + 'checksum': 'b367755c664a2d7a26955bbfff985855adfa2ca15e908baf= 15b4b176d68d3967', + 'pxeboot_url': "http://dl.fedoraproject.org/pub/fedora/linux/" + "releases/32/Server/aarch64/os/images/pxeboot/= "}, + } + , + '33': { + 'aarch64': + {'kernel_params': "root=3DUUID=3Dd20b3ffa-6397-4a63-a734-1126a= 0208f8a ro " + "no_timer_check net.ifnames=3D0 console=3Dtt= y1 " + "console=3DttyS0,115200n8 console=3Dtty0 ", + 'checksum': 'e7f75cdfd523fe5ac2ca9eeece68edc1a81f386a17f969c1= d1c7c87031008a6b', + 'pxeboot_url': "http://dl.fedoraproject.org/pub/fedora/linux/" + "releases/33/Server/aarch64/os/images/pxeboot/= "}, + } } } =20 +def get_known_distro_kernel_params(distro, distro_version, arch): + try: + return KNOWN_DISTROS.get(distro).get(distro_version).get(arch).get= ('kernel_params') + except AttributeError: + return None + +def get_known_distro_pxeboot_url(distro, distro_version, arch): + try: + return KNOWN_DISTROS.get(distro).get(distro_version).get(arch).get= ('pxeboot_url') + except AttributeError: + return None =20 def get_known_distro_checksum(distro, distro_version, arch): try: @@ -449,6 +491,12 @@ def set_up_cloudinit(self, ssh_pubkey=3DNone): cloudinit_iso =3D self.prepare_cloudinit(ssh_pubkey) self.vm.add_args('-drive', 'file=3D%s,format=3Draw' % cloudinit_is= o) =20 + def get_default_kernel_params(self): + return get_known_distro_kernel_params(self.distro, self.distro_ver= sion, self.arch) + + def get_pxeboot_url(self): + return get_known_distro_pxeboot_url(self.distro, self.distro_versi= on, self.arch) + def launch_and_wait(self, set_up_ssh_connection=3DTrue): self.vm.set_console() self.vm.launch() --=20 2.26.3 From nobody Sun May 19 02:06:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1624978400440888.7349694271479; Tue, 29 Jun 2021 07:53:20 -0700 (PDT) Received: from localhost ([::1]:51980 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lyF70-0005uI-W6 for importer@patchew.org; Tue, 29 Jun 2021 10:53:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57476) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lyEr0-0005Qn-Bf for qemu-devel@nongnu.org; Tue, 29 Jun 2021 10:36:46 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:49377) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lyEqx-0005kl-H1 for qemu-devel@nongnu.org; Tue, 29 Jun 2021 10:36:46 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-50-Qekc7fHhNXKKAmDKo7M5kQ-1; Tue, 29 Jun 2021 10:36:41 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B95B5A40C2; Tue, 29 Jun 2021 14:36:40 +0000 (UTC) Received: from laptop.redhat.com (ovpn-113-168.ams2.redhat.com [10.36.113.168]) by smtp.corp.redhat.com (Postfix) with ESMTP id CAF9C1A26A; Tue, 29 Jun 2021 14:36:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624977402; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=d5lw1GoNgCfwNQEF6QT/q1fDKVsESxmLc6jLJ4oQyrI=; b=VHBvtISBqWpFYTYUCexQz2xKwoEXqdlj97hRmOqHP32WuDqX+dyFQ6aZpZ4lwgL+HOmBM1 QcyUyCrhNPAtWTJgxB3XxbIRof4vSfD1e6oHL+kCcCZ+zVo34yG5skFw/yNcrWBELdjy2S wRwwKzqa9qxFGlDcYvPxTttIldXhYFU= X-MC-Unique: Qekc7fHhNXKKAmDKo7M5kQ-1 From: Eric Auger To: eric.auger.pro@gmail.com, eric.auger@redhat.com, qemu-devel@nongnu.org, philmd@redhat.com, crosa@redhat.com, wainersm@redhat.com Subject: [PATCH v4 2/4] avocado_qemu: Add SMMUv3 tests Date: Tue, 29 Jun 2021 16:36:19 +0200 Message-Id: <20210629143621.907831-3-eric.auger@redhat.com> In-Reply-To: <20210629143621.907831-1-eric.auger@redhat.com> References: <20210629143621.907831-1-eric.auger@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=eric.auger@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=eric.auger@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.435, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: wrampazz@redhat.com, peterx@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Add new tests checking the good behavior of the SMMUv3 protecting 2 virtio pci devices (block and net). We check the guest boots and we are able to install a package. Different guest configs are tested: standard, passthrough an strict=3D0. This is tested with both fedora 31 and 33. The former uses a 5.3 kernel without range invalidation whereas the latter uses a 5.8 kernel that features range invalidation. Signed-off-by: Eric Auger Reviewed-by: Wainer dos Santos Moschetta Reviewed-by: Willian Rampazzo Tested-by: Wainer dos Santos Moschetta --- v3 -> v4: - add tags for machine, distro in the class - removed smp and memory overrides - set default param value of common_vm_setup to False v1 -> v2: - removed ssh import - combined add_command_args() and common_vm_setup() - moved tags in class' docstring and added tags=3Darch:aarch64 - use self.get_default_kernel_params() - added RIL tests with fed33 + introduce new tags --- tests/acceptance/smmu.py | 132 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 tests/acceptance/smmu.py diff --git a/tests/acceptance/smmu.py b/tests/acceptance/smmu.py new file mode 100644 index 0000000000..c1d4b88e5f --- /dev/null +++ b/tests/acceptance/smmu.py @@ -0,0 +1,132 @@ +# SMMUv3 Functional tests +# +# Copyright (c) 2021 Red Hat, Inc. +# +# Author: +# Eric Auger +# +# This work is licensed under the terms of the GNU GPL, version 2 or +# later. See the COPYING file in the top-level directory. + +import os + +from avocado_qemu import LinuxTest, BUILD_DIR + +class SMMU(LinuxTest): + """ + :avocado: tags=3Daccel:kvm + :avocado: tags=3Dcpu:host + :avocado: tags=3Darch:aarch64 + :avocado: tags=3Dmachine:virt + :avocado: tags=3Ddistro:fedora + :avocado: tags=3Dsmmu + """ + + IOMMU_ADDON =3D ',iommu_platform=3Don,disable-modern=3Doff,disable-leg= acy=3Don' + kernel_path =3D None + initrd_path =3D None + kernel_params =3D None + + def set_up_boot(self): + path =3D self.download_boot() + self.vm.add_args('-device', 'virtio-blk-pci,bus=3Dpcie.0,scsi=3Dof= f,' + + 'drive=3Ddrv0,id=3Dvirtio-disk0,bootindex=3D1,' + 'werror=3Dstop,rerror=3Dstop' + self.IOMMU_ADDON) + self.vm.add_args('-drive', + 'file=3D%s,if=3Dnone,cache=3Dwritethrough,id=3Ddr= v0' % path) + + def setUp(self): + super(SMMU, self).setUp(None, 'virtio-net-pci' + self.IOMMU_ADDON) + + def common_vm_setup(self, custom_kernel=3DFalse): + self.require_accelerator("kvm") + self.vm.add_args("-accel", "kvm") + self.vm.add_args("-cpu", "host") + self.vm.add_args("-machine", "iommu=3Dsmmuv3") + self.vm.add_args("-d", "guest_errors") + self.vm.add_args('-bios', os.path.join(BUILD_DIR, 'pc-bios', + 'edk2-aarch64-code.fd')) + self.vm.add_args('-device', 'virtio-rng-pci,rng=3Drng0') + self.vm.add_args('-object', + 'rng-random,id=3Drng0,filename=3D/dev/urandom') + + if custom_kernel is False: + return + + kernel_url =3D self.get_pxeboot_url() + 'vmlinuz' + initrd_url =3D self.get_pxeboot_url() + 'initrd.img' + self.kernel_path =3D self.fetch_asset(kernel_url) + self.initrd_path =3D self.fetch_asset(initrd_url) + + def run_and_check(self): + if self.kernel_path: + self.vm.add_args('-kernel', self.kernel_path, + '-append', self.kernel_params, + '-initrd', self.initrd_path) + self.launch_and_wait() + self.ssh_command('cat /proc/cmdline') + self.ssh_command('dnf -y install numactl-devel') + + + # 5.3 kernel without RIL # + + def test_smmu_noril(self): + """ + :avocado: tags=3Dsmmu_noril + :avocado: tags=3Dsmmu_noril_tests + :avocado: tags=3Ddistro_version:31 + """ + self.common_vm_setup() + self.run_and_check() + + def test_smmu_noril_passthrough(self): + """ + :avocado: tags=3Dsmmu_noril_passthrough + :avocado: tags=3Dsmmu_noril_tests + :avocado: tags=3Ddistro_version:31 + """ + self.common_vm_setup(True) + self.kernel_params =3D self.get_default_kernel_params() + ' iommu.= passthrough=3Don' + self.run_and_check() + + def test_smmu_noril_nostrict(self): + """ + :avocado: tags=3Dsmmu_noril_nostrict + :avocado: tags=3Dsmmu_noril_tests + :avocado: tags=3Ddistro_version:31 + """ + self.common_vm_setup(True) + self.kernel_params =3D self.get_default_kernel_params() + ' iommu.= strict=3D0' + self.run_and_check() + + # 5.8 kernel featuring range invalidation + # >=3D v5.7 kernel + + def test_smmu_ril(self): + """ + :avocado: tags=3Dsmmu_ril + :avocado: tags=3Dsmmu_ril_tests + :avocado: tags=3Ddistro_version:33 + """ + self.common_vm_setup() + self.run_and_check() + + def test_smmu_ril_passthrough(self): + """ + :avocado: tags=3Dsmmu_ril_passthrough + :avocado: tags=3Dsmmu_ril_tests + :avocado: tags=3Ddistro_version:33 + """ + self.common_vm_setup(True) + self.kernel_params =3D self.get_default_kernel_params() + ' iommu.= passthrough=3Don' + self.run_and_check() + + def test_smmu_ril_nostrict(self): + """ + :avocado: tags=3Dsmmu_ril_nostrict + :avocado: tags=3Dsmmu_ril_tests + :avocado: tags=3Ddistro_version:33 + """ + self.common_vm_setup(True) + self.kernel_params =3D self.get_default_kernel_params() + ' iommu.= strict=3D0' + self.run_and_check() --=20 2.26.3 From nobody Sun May 19 02:06:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1624977775782549.2202181345306; Tue, 29 Jun 2021 07:42:55 -0700 (PDT) Received: from localhost ([::1]:57770 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lyEww-0007AC-IV for importer@patchew.org; Tue, 29 Jun 2021 10:42:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57500) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lyEr5-0005Ub-2W for qemu-devel@nongnu.org; Tue, 29 Jun 2021 10:36:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:60725) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lyEqz-0005nv-WB for qemu-devel@nongnu.org; Tue, 29 Jun 2021 10:36:50 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-286-n9RySRJ1M3GWbxHn-zjiqw-1; Tue, 29 Jun 2021 10:36:43 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 105E01922964; Tue, 29 Jun 2021 14:36:43 +0000 (UTC) Received: from laptop.redhat.com (ovpn-113-168.ams2.redhat.com [10.36.113.168]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1EFE0E2E8; Tue, 29 Jun 2021 14:36:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624977404; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XZqZnzR8QBsJpNun743ysyqV7ou6lFHfZNdCi+3ZSCQ=; b=g4mpERbzh0ZaIRfXdf1p7en3ktQ4/ECH6qPiNd3qGILMquESZY+49I+rJQi1MDhZjboDpg YKYwuFy9XlZrilAZxViDc96Cgf+5FDDySkkZcTISP9ww8Q4DuMyq0HkgDpktQ+t/wt69Jb q5sqK6A7oDGY0edktVKrGarq220JD9M= X-MC-Unique: n9RySRJ1M3GWbxHn-zjiqw-1 From: Eric Auger To: eric.auger.pro@gmail.com, eric.auger@redhat.com, qemu-devel@nongnu.org, philmd@redhat.com, crosa@redhat.com, wainersm@redhat.com Subject: [PATCH v4 3/4] avocado_qemu: Add Intel iommu tests Date: Tue, 29 Jun 2021 16:36:20 +0200 Message-Id: <20210629143621.907831-4-eric.auger@redhat.com> In-Reply-To: <20210629143621.907831-1-eric.auger@redhat.com> References: <20210629143621.907831-1-eric.auger@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=eric.auger@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=eric.auger@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.435, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: wrampazz@redhat.com, peterx@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Add Intel IOMMU functional tests based on fedora 31. Different configs are checked: - strict - caching mode, strict - passthrough. Signed-off-by: Eric Auger Acked-by: Peter Xu --- tests/acceptance/intel_iommu.py | 115 ++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 tests/acceptance/intel_iommu.py diff --git a/tests/acceptance/intel_iommu.py b/tests/acceptance/intel_iommu= .py new file mode 100644 index 0000000000..0b68d3c572 --- /dev/null +++ b/tests/acceptance/intel_iommu.py @@ -0,0 +1,115 @@ +# INTEL_IOMMU Functional tests +# +# Copyright (c) 2021 Red Hat, Inc. +# +# Author: +# Eric Auger +# +# This work is licensed under the terms of the GNU GPL, version 2 or +# later. See the COPYING file in the top-level directory. + +import os + +from avocado_qemu import LinuxTest, BUILD_DIR +from avocado.utils import ssh + +class INTEL_IOMMU(LinuxTest): + """ + :avocado: tags=3Darch:x86_64 + :avocado: tags=3Ddistro:fedora + :avocado: tags=3Ddistro_version:31 + :avocado: tags=3Dmachine:q35 + :avocado: tags=3Daccel:kvm + :avocado: tags=3Dintel_iommu + """ + + IOMMU_ADDON =3D ',iommu_platform=3Don,disable-modern=3Doff,disable-leg= acy=3Don' + kernel_path =3D None + initrd_path =3D None + kernel_params =3D None + + def set_up_boot(self): + path =3D self.download_boot() + self.vm.add_args('-device', 'virtio-blk-pci,bus=3Dpcie.0,scsi=3Dof= f,' + + 'drive=3Ddrv0,id=3Dvirtio-disk0,bootindex=3D1,' + 'werror=3Dstop,rerror=3Dstop' + self.IOMMU_ADDON) + self.vm.add_args('-device', 'virtio-gpu-pci' + self.IOMMU_ADDON) + self.vm.add_args('-drive', + 'file=3D%s,if=3Dnone,cache=3Dwritethrough,id=3Ddr= v0' % path) + + def setUp(self): + super(INTEL_IOMMU, self).setUp(None, 'virtio-net-pci' + self.IOMMU= _ADDON) + + def add_common_args(self): + self.vm.add_args('-device', 'virtio-rng-pci,rng=3Drng0') + self.vm.add_args('-object', + 'rng-random,id=3Drng0,filename=3D/dev/urandom') + + def common_vm_setup(self, custom_kernel=3DNone): + self.require_accelerator("kvm") + self.add_common_args() + self.vm.add_args("-accel", "kvm") + + if custom_kernel is None: + return + + kernel_url =3D self.get_pxeboot_url() + 'vmlinuz' + initrd_url =3D self.get_pxeboot_url() + 'initrd.img' + self.kernel_path =3D self.fetch_asset(kernel_url) + self.initrd_path =3D self.fetch_asset(initrd_url) + + def run_and_check(self): + if self.kernel_path: + self.vm.add_args('-kernel', self.kernel_path, + '-append', self.kernel_params, + '-initrd', self.initrd_path) + self.launch_and_wait() + self.ssh_command('cat /proc/cmdline') + self.ssh_command('dmesg | grep -e DMAR -e IOMMU') + self.ssh_command('find /sys/kernel/iommu_groups/ -type l') + self.ssh_command('dnf -y install numactl-devel') + + def test_intel_iommu(self): + """ + :avocado: tags=3Dintel_iommu_intremap + """ + + self.common_vm_setup(True) + self.vm.add_args('-device', 'intel-iommu,intremap=3Don') + self.vm.add_args('-machine', 'kernel_irqchip=3Dsplit') + + self.kernel_params =3D self.get_default_kernel_params() + ' quiet = intel_iommu=3Don' + self.run_and_check() + + def test_intel_iommu_strict(self): + """ + :avocado: tags=3Dintel_iommu_strict + """ + + self.common_vm_setup(True) + self.vm.add_args('-device', 'intel-iommu,intremap=3Don') + self.vm.add_args('-machine', 'kernel_irqchip=3Dsplit') + self.kernel_params =3D self.get_default_kernel_params() + ' quiet = intel_iommu=3Don,strict' + self.run_and_check() + + def test_intel_iommu_strict_cm(self): + """ + :avocado: tags=3Dintel_iommu_strict_cm + """ + + self.common_vm_setup(True) + self.vm.add_args('-device', 'intel-iommu,intremap=3Don,caching-mod= e=3Don') + self.vm.add_args('-machine', 'kernel_irqchip=3Dsplit') + self.kernel_params =3D self.get_default_kernel_params() + ' quiet = intel_iommu=3Don,strict' + self.run_and_check() + + def test_intel_iommu_pt(self): + """ + :avocado: tags=3Dintel_iommu_pt + """ + + self.common_vm_setup(True) + self.vm.add_args('-device', 'intel-iommu,intremap=3Don') + self.vm.add_args('-machine', 'kernel_irqchip=3Dsplit') + self.kernel_params =3D self.get_default_kernel_params() + ' quiet = intel_iommu=3Don iommu=3Dpt' + self.run_and_check() --=20 2.26.3 From nobody Sun May 19 02:06:45 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 162497754856481.91040647414002; Tue, 29 Jun 2021 07:39:08 -0700 (PDT) Received: from localhost ([::1]:47798 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lyEtH-0000Fx-FM for importer@patchew.org; Tue, 29 Jun 2021 10:39:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57582) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lyErH-0005tw-EP for qemu-devel@nongnu.org; Tue, 29 Jun 2021 10:37:03 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:44775) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lyErE-0005xj-T4 for qemu-devel@nongnu.org; Tue, 29 Jun 2021 10:37:03 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-480-kOVVPP4sPfSxPUnPLKdtqA-1; Tue, 29 Jun 2021 10:36:56 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 814511922960; Tue, 29 Jun 2021 14:36:55 +0000 (UTC) Received: from laptop.redhat.com (ovpn-113-168.ams2.redhat.com [10.36.113.168]) by smtp.corp.redhat.com (Postfix) with ESMTP id 692AC163C6; Tue, 29 Jun 2021 14:36:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624977420; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=90bMUDHfRx0nUmR8VUcVOuXiGBm4PqO3Az3udISJmM8=; b=K2XuG8+H4KcrTs/1uoMFNoz23EoFOYUqWmn1BxAtHTusKZr4WRIZZMk4frVG4F4FgXMMWV +/+f/QVYAnUw8qtdmyvaOLkCO2Jh3xmBf1/5/HfDd17RIfZI++YJJqIOP/dXfwBa2/P68O H7j0/vom1pnG1mnDmjRI3CdjzrOeHLE= X-MC-Unique: kOVVPP4sPfSxPUnPLKdtqA-1 From: Eric Auger To: eric.auger.pro@gmail.com, eric.auger@redhat.com, qemu-devel@nongnu.org, philmd@redhat.com, crosa@redhat.com, wainersm@redhat.com Subject: [PATCH v4 4/4] avocado_qemu: Fix KNOWN_DISTROS map into the LinuxDistro class Date: Tue, 29 Jun 2021 16:36:21 +0200 Message-Id: <20210629143621.907831-5-eric.auger@redhat.com> In-Reply-To: <20210629143621.907831-1-eric.auger@redhat.com> References: <20210629143621.907831-1-eric.auger@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=eric.auger@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=eric.auger@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.435, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: wrampazz@redhat.com, peterx@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Wainer dos Santos Moschetta As the KNOWN_DISTROS grows, more loosely methods will be created in the avocado_qemu/__init__.py file. Let's refactor the code so that KNOWN_DISTROS and related methods are packaged in a class Signed-off-by: Wainer dos Santos Moschetta Signed-off-by: Eric Auger --- [Eric] rebase and add commit message --- tests/acceptance/avocado_qemu/__init__.py | 160 +++++++++++----------- tests/acceptance/intel_iommu.py | 12 +- tests/acceptance/smmu.py | 12 +- 3 files changed, 94 insertions(+), 90 deletions(-) diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/a= vocado_qemu/__init__.py index 64e9c1952d..00eb0bfcc8 100644 --- a/tests/acceptance/avocado_qemu/__init__.py +++ b/tests/acceptance/avocado_qemu/__init__.py @@ -299,72 +299,86 @@ def ssh_command(self, command): f'Guest command failed: {command}') return stdout_lines, stderr_lines =20 +class LinuxDistro: + """Represents a Linux distribution =20 -#: A collection of known distros and their respective image checksum -KNOWN_DISTROS =3D { - 'fedora': { - '31': { - 'x86_64': - {'checksum': 'e3c1b309d9203604922d6e255c2c5d098a309c2d46215d8f= c026954f3c5c27a0', - 'pxeboot_url': "https://archives.fedoraproject.org/pub/archiv= e/fedora/" - "linux/releases/31/Everything/x86_64/os/images= /pxeboot/", - 'kernel_params': "root=3DUUID=3Db1438b9b-2cab-4065-a99a-08a96= 687f73c ro " + Holds information of known distros. + """ + #: A collection of known distros and their respective image checksum + KNOWN_DISTROS =3D { + 'fedora': { + '31': { + 'x86_64': + {'checksum': 'e3c1b309d9203604922d6e255c2c5d098a309c2d4621= 5d8fc026954f3c5c27a0', + 'pxeboot_url': "https://archives.fedoraproject.org/pub/arc= hive/fedora/" + "linux/releases/31/Everything/x86_64/os/ima= ges/pxeboot/", + 'kernel_params': "root=3DUUID=3Db1438b9b-2cab-4065-a99a-08= a96687f73c ro " "no_timer_check net.ifnames=3D0 " "console=3Dtty1 console=3DttyS0,115200n8"}, - 'aarch64': - {'checksum': '1e18d9c0cf734940c4b5d5ec592facaed2af0ad0329383d5= 639c997fdf16fe49', - 'pxeboot_url': "https://archives.fedoraproject.org/pub/archiv= e/fedora/" - "linux/releases/31/Everything/aarch64/os/image= s/pxeboot/", - 'kernel_params': "root=3DUUID=3Db6950a44-9f3c-4076-a9c2-355e8= 475b0a7 ro " - "earlyprintk=3Dpl011,0x9000000 ignore_loglev= el " - "no_timer_check printk.time=3D1 rd_NO_PLYMOU= TH " - "console=3DttyAMA0 "}, - 'ppc64': - {'checksum': '7c3528b85a3df4b2306e892199a9e1e43f991c506f2cc390= dc4efa2026ad2f58'}, - 's390x': - {'checksum': '4caaab5a434fd4d1079149a072fdc7891e354f834d355069= ca982fdcaf5a122d'}, - } - , - '32': { - 'aarch64': - {'kernel_params': "root=3DUUID=3D3df75b65-be8d-4db4-8655-14d95= c0e90c5 ro " - "no_timer_check net.ifnames=3D0 console=3Dtt= y1 " - "console=3DttyS0,115200n8 ", - 'checksum': 'b367755c664a2d7a26955bbfff985855adfa2ca15e908baf= 15b4b176d68d3967', - 'pxeboot_url': "http://dl.fedoraproject.org/pub/fedora/linux/" - "releases/32/Server/aarch64/os/images/pxeboot/= "}, - } - , - '33': { - 'aarch64': - {'kernel_params': "root=3DUUID=3Dd20b3ffa-6397-4a63-a734-1126a= 0208f8a ro " - "no_timer_check net.ifnames=3D0 console=3Dtt= y1 " - "console=3DttyS0,115200n8 console=3Dtty0 ", - 'checksum': 'e7f75cdfd523fe5ac2ca9eeece68edc1a81f386a17f969c1= d1c7c87031008a6b', - 'pxeboot_url': "http://dl.fedoraproject.org/pub/fedora/linux/" - "releases/33/Server/aarch64/os/images/pxeboot/= "}, + 'aarch64': + {'checksum': '1e18d9c0cf734940c4b5d5ec592facaed2af0ad03293= 83d5639c997fdf16fe49', + 'pxeboot_url': "https://archives.fedoraproject.org/pub/ar= chive/fedora/" + "linux/releases/31/Everything/aarch64/os/i= mages/pxeboot/", + 'kernel_params': "root=3DUUID=3Db6950a44-9f3c-4076-a9c2-3= 55e8475b0a7 ro " + "earlyprintk=3Dpl011,0x9000000 ignore_lo= glevel " + "no_timer_check printk.time=3D1 rd_NO_PL= YMOUTH " + "console=3DttyAMA0 "}, + 'ppc64': + {'checksum': '7c3528b85a3df4b2306e892199a9e1e43f991c506f2c= c390dc4efa2026ad2f58'}, + 's390x': + {'checksum': '4caaab5a434fd4d1079149a072fdc7891e354f834d35= 5069ca982fdcaf5a122d'}, + } + , + '32': { + 'aarch64': + {'kernel_params': "root=3DUUID=3D3df75b65-be8d-4db4-8655-1= 4d95c0e90c5 ro " + "no_timer_check net.ifnames=3D0 console= =3Dtty1 " + "console=3DttyS0,115200n8 ", + 'checksum': 'b367755c664a2d7a26955bbfff985855adfa2ca15e90= 8baf15b4b176d68d3967', + 'pxeboot_url': "http://dl.fedoraproject.org/pub/fedora/li= nux/" + "releases/32/Server/aarch64/os/images/pxeb= oot/"}, + } + , + '33': { + 'aarch64': + {'kernel_params': "root=3DUUID=3Dd20b3ffa-6397-4a63-a734-1= 126a0208f8a ro " + "no_timer_check net.ifnames=3D0 console= =3Dtty1 " + "console=3DttyS0,115200n8 console=3Dtty0= ", + 'checksum': 'e7f75cdfd523fe5ac2ca9eeece68edc1a81f386a17f9= 69c1d1c7c87031008a6b', + 'pxeboot_url': "http://dl.fedoraproject.org/pub/fedora/li= nux/" + "releases/33/Server/aarch64/os/images/pxeb= oot/"}, + } } } - } =20 -def get_known_distro_kernel_params(distro, distro_version, arch): - try: - return KNOWN_DISTROS.get(distro).get(distro_version).get(arch).get= ('kernel_params') - except AttributeError: - return None + def __init__(self, name, version, arch): + self.name =3D name + self.version =3D version + self.arch =3D arch + try: + self._info =3D self.KNOWN_DISTROS.get(name).get(version).get(a= rch) + except AttributeError: + # Unknown distro + self._info =3D {} =20 -def get_known_distro_pxeboot_url(distro, distro_version, arch): - try: - return KNOWN_DISTROS.get(distro).get(distro_version).get(arch).get= ('pxeboot_url') - except AttributeError: - return None + @property + def default_kernel_params(self): + """Gets the default kernel parameters""" + return self._info.get('kernel_params', None) =20 -def get_known_distro_checksum(distro, distro_version, arch): - try: - return KNOWN_DISTROS.get(distro).get(distro_version).get(arch).get= ('checksum') - except AttributeError: - return None + @property + def pxeboot_url(self): + """Gets the repository url where pxeboot files can be found""" + return self._info.get('pxeboot_url', None) =20 + @property + def checksum(self): + """Gets the cloud-image file checksum""" + return self._info.get('checksum', None) + + @checksum.setter + def checksum(self, value): + self._info['checksum'] =3D value =20 class LinuxTest(Test, LinuxSSHMixIn): """Facilitates having a cloud-image Linux based available. @@ -374,24 +388,24 @@ class LinuxTest(Test, LinuxSSHMixIn): """ =20 timeout =3D 900 - distro_checksum =3D None + distro =3D None username =3D 'root' password =3D 'password' =20 def _set_distro(self): - distro =3D self.params.get( + distro_name =3D self.params.get( 'distro', default=3Dself._get_unique_tag_val('distro')) - if not distro: - distro =3D 'fedora' - self.distro =3D distro + if not distro_name: + distro_name =3D 'fedora' =20 distro_version =3D self.params.get( 'distro_version', default=3Dself._get_unique_tag_val('distro_version')) if not distro_version: distro_version =3D '31' - self.distro_version =3D distro_version + + self.distro =3D LinuxDistro(distro_name, distro_version, self.arch) =20 # The distro checksum behaves differently than distro name and # version. First, it does not respect a tag with the same @@ -400,13 +414,9 @@ def _set_distro(self): # order of precedence is: parameter, attribute and then value # from KNOWN_DISTROS. distro_checksum =3D self.params.get('distro_checksum', - default=3Dself.distro_checksum) - if not distro_checksum: - distro_checksum =3D get_known_distro_checksum(self.distro, - self.distro_versio= n, - self.arch) + default=3DNone) if distro_checksum: - self.distro_checksum =3D distro_checksum + self.distro.checksum =3D distro_checksum =20 def setUp(self, ssh_pubkey=3DNone, network_device_type=3D'virtio-net'): super(LinuxTest, self).setUp() @@ -448,14 +458,14 @@ def download_boot(self): self.log.info('Downloading/preparing boot image') # Fedora 31 only provides ppc64le images image_arch =3D self.arch - if self.distro =3D=3D 'fedora': + if self.distro.name =3D=3D 'fedora': if image_arch =3D=3D 'ppc64': image_arch =3D 'ppc64le' =20 try: boot =3D vmimage.get( - self.distro, arch=3Dimage_arch, version=3Dself.distro_vers= ion, - checksum=3Dself.distro_checksum, + self.distro.name, arch=3Dimage_arch, version=3Dself.distro= .version, + checksum=3Dself.distro.checksum, algorithm=3D'sha256', cache_dir=3Dself.cache_dirs[0], snapshot_dir=3Dself.workdir) @@ -491,12 +501,6 @@ def set_up_cloudinit(self, ssh_pubkey=3DNone): cloudinit_iso =3D self.prepare_cloudinit(ssh_pubkey) self.vm.add_args('-drive', 'file=3D%s,format=3Draw' % cloudinit_is= o) =20 - def get_default_kernel_params(self): - return get_known_distro_kernel_params(self.distro, self.distro_ver= sion, self.arch) - - def get_pxeboot_url(self): - return get_known_distro_pxeboot_url(self.distro, self.distro_versi= on, self.arch) - def launch_and_wait(self, set_up_ssh_connection=3DTrue): self.vm.set_console() self.vm.launch() diff --git a/tests/acceptance/intel_iommu.py b/tests/acceptance/intel_iommu= .py index 0b68d3c572..bf8dea6e4f 100644 --- a/tests/acceptance/intel_iommu.py +++ b/tests/acceptance/intel_iommu.py @@ -53,8 +53,8 @@ def common_vm_setup(self, custom_kernel=3DNone): if custom_kernel is None: return =20 - kernel_url =3D self.get_pxeboot_url() + 'vmlinuz' - initrd_url =3D self.get_pxeboot_url() + 'initrd.img' + kernel_url =3D self.distro.pxeboot_url + 'vmlinuz' + initrd_url =3D self.distro.pxeboot_url + 'initrd.img' self.kernel_path =3D self.fetch_asset(kernel_url) self.initrd_path =3D self.fetch_asset(initrd_url) =20 @@ -78,7 +78,7 @@ def test_intel_iommu(self): self.vm.add_args('-device', 'intel-iommu,intremap=3Don') self.vm.add_args('-machine', 'kernel_irqchip=3Dsplit') =20 - self.kernel_params =3D self.get_default_kernel_params() + ' quiet = intel_iommu=3Don' + self.kernel_params =3D self.distro.default_kernel_params + ' quiet= intel_iommu=3Don' self.run_and_check() =20 def test_intel_iommu_strict(self): @@ -89,7 +89,7 @@ def test_intel_iommu_strict(self): self.common_vm_setup(True) self.vm.add_args('-device', 'intel-iommu,intremap=3Don') self.vm.add_args('-machine', 'kernel_irqchip=3Dsplit') - self.kernel_params =3D self.get_default_kernel_params() + ' quiet = intel_iommu=3Don,strict' + self.kernel_params =3D self.distro.default_kernel_params + ' quiet= intel_iommu=3Don,strict' self.run_and_check() =20 def test_intel_iommu_strict_cm(self): @@ -100,7 +100,7 @@ def test_intel_iommu_strict_cm(self): self.common_vm_setup(True) self.vm.add_args('-device', 'intel-iommu,intremap=3Don,caching-mod= e=3Don') self.vm.add_args('-machine', 'kernel_irqchip=3Dsplit') - self.kernel_params =3D self.get_default_kernel_params() + ' quiet = intel_iommu=3Don,strict' + self.kernel_params =3D self.distro.default_kernel_params + ' quiet= intel_iommu=3Don,strict' self.run_and_check() =20 def test_intel_iommu_pt(self): @@ -111,5 +111,5 @@ def test_intel_iommu_pt(self): self.common_vm_setup(True) self.vm.add_args('-device', 'intel-iommu,intremap=3Don') self.vm.add_args('-machine', 'kernel_irqchip=3Dsplit') - self.kernel_params =3D self.get_default_kernel_params() + ' quiet = intel_iommu=3Don iommu=3Dpt' + self.kernel_params =3D self.distro.default_kernel_params + ' quiet= intel_iommu=3Don iommu=3Dpt' self.run_and_check() diff --git a/tests/acceptance/smmu.py b/tests/acceptance/smmu.py index c1d4b88e5f..72e26f002c 100644 --- a/tests/acceptance/smmu.py +++ b/tests/acceptance/smmu.py @@ -53,8 +53,8 @@ def common_vm_setup(self, custom_kernel=3DFalse): if custom_kernel is False: return =20 - kernel_url =3D self.get_pxeboot_url() + 'vmlinuz' - initrd_url =3D self.get_pxeboot_url() + 'initrd.img' + kernel_url =3D self.distro.pxeboot_url + 'vmlinuz' + initrd_url =3D self.distro.pxeboot_url + 'initrd.img' self.kernel_path =3D self.fetch_asset(kernel_url) self.initrd_path =3D self.fetch_asset(initrd_url) =20 @@ -86,7 +86,7 @@ def test_smmu_noril_passthrough(self): :avocado: tags=3Ddistro_version:31 """ self.common_vm_setup(True) - self.kernel_params =3D self.get_default_kernel_params() + ' iommu.= passthrough=3Don' + self.kernel_params =3D self.distro.default_kernel_params + ' iommu= .passthrough=3Don' self.run_and_check() =20 def test_smmu_noril_nostrict(self): @@ -96,7 +96,7 @@ def test_smmu_noril_nostrict(self): :avocado: tags=3Ddistro_version:31 """ self.common_vm_setup(True) - self.kernel_params =3D self.get_default_kernel_params() + ' iommu.= strict=3D0' + self.kernel_params =3D self.distro.default_kernel_params + ' iommu= .strict=3D0' self.run_and_check() =20 # 5.8 kernel featuring range invalidation @@ -118,7 +118,7 @@ def test_smmu_ril_passthrough(self): :avocado: tags=3Ddistro_version:33 """ self.common_vm_setup(True) - self.kernel_params =3D self.get_default_kernel_params() + ' iommu.= passthrough=3Don' + self.kernel_params =3D self.distro.default_kernel_params + ' iommu= .passthrough=3Don' self.run_and_check() =20 def test_smmu_ril_nostrict(self): @@ -128,5 +128,5 @@ def test_smmu_ril_nostrict(self): :avocado: tags=3Ddistro_version:33 """ self.common_vm_setup(True) - self.kernel_params =3D self.get_default_kernel_params() + ' iommu.= strict=3D0' + self.kernel_params =3D self.distro.default_kernel_params + ' iommu= .strict=3D0' self.run_and_check() --=20 2.26.3