From nobody Wed May 8 14:28:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1628009254; cv=none; d=zohomail.com; s=zohoarc; b=l7wRCmPeO5Jcl4E4AjmzvgxD2LjSG/4b4GgREpfCcqVsxtgaJOo7QJveRmOmwiiN0r/1OWFtThOQDffOXPaHuQLz7Y2wr35dTnHH8VdHdIdrHo9Dl5tMYuKfafkKgP0U7o3Q6tQ+rN/GeJMMWu/ZTM0ZDrhxyMUgZ5kKU7U/IO8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1628009254; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=2ayOtp3XiHWeswVtkzfAaHWxzIijRmfFyTW3zCib0bI=; b=Kq8qYTkQ/EETcLIwMNNKFdtMukjzUiq6SpuTNwY04ELIXk5SdHn+bL8QKCjCtZ3gKlqhgn/ZEjK6dIEvtwq7KctY8u1nWHAuhihsQZ/kejrxcHNGg82nmkD8HwQajNRndiuXx3jN7Pjyp7NX1xDMuOWttkTpC1uBY3FI6+1Esbo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1628009254563882.1058124625619; Tue, 3 Aug 2021 09:47:34 -0700 (PDT) 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-188-MoWZKXGzNsqLM9g5_-_Irg-1; Tue, 03 Aug 2021 12:47:18 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id EFAF31853036; Tue, 3 Aug 2021 16:47:13 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A986A1383C; Tue, 3 Aug 2021 16:47:13 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 7820C4A700; Tue, 3 Aug 2021 16:47:13 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 173CWnwd022508 for ; Tue, 3 Aug 2021 08:32:49 -0400 Received: by smtp.corp.redhat.com (Postfix) id 5530313AD3; Tue, 3 Aug 2021 12:32:49 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.192.146]) by smtp.corp.redhat.com (Postfix) with ESMTP id C693E752A2 for ; Tue, 3 Aug 2021 12:32:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1628009253; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=2ayOtp3XiHWeswVtkzfAaHWxzIijRmfFyTW3zCib0bI=; b=Gr0qiI0aZdsU99AJr0YWuGBfShzhWNq/usedzEGL45cYFx5peRe6b/ThKrxIc3+80jtYsr X7oK2aUxzNKZmIkDp7tyEAEjoU+miTv7vEONRN+x7RffuIEgetnFag+ecKJ7zs7s5qNiAZ guGbBkFDFdcpwfxqHcQMx+oKwZLg2sM= X-MC-Unique: MoWZKXGzNsqLM9g5_-_Irg-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 1/7] vmx: Fill virtualHW.version to ESX version mapping Date: Tue, 3 Aug 2021 14:32:25 +0200 Message-Id: <6d1b7be896a2b96847855c6b83321e678389aa6b.1627993626.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1628009256115100004 Content-Type: text/plain; charset="utf-8" At the beginning of vmx.c we have a comment that maps virtualHW.version field onto ESX version. However, it wasn't updated in a while. Fill it in using the following kbase article: https://kb.vmware.com/s/article/1003746 Signed-off-by: Michal Privoznik Reviewed-by: J=C3=A1n Tomko --- src/vmx/vmx.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 04eabff18a..c3c00a5c7e 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -48,6 +48,10 @@ domain-xml <=3D> vmx virtualHW.version =3D "8" = # essential for ESX 5.0 virtualHW.version =3D "9" = # essential for ESX 5.1 virtualHW.version =3D "10" = # essential for ESX 5.5 + virtualHW.version =3D "11" = # essential for ESX 6.0 + virtualHW.version =3D "13" = # essential for ESX 6.5 + virtualHW.version =3D "14" = # essential for ESX 6.7 + virtualHW.version =3D "17" = # essential for ESX 7.0 =20 =20 ??? <=3D> guestOS =3D "" = # essential, FIXME: not representable --=20 2.31.1 From nobody Wed May 8 14:28:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1628009248; cv=none; d=zohomail.com; s=zohoarc; b=PKJ3E8tdsxFWZpLU5bks2gDX0WjFsX2+iNvNOirH3wJzKEhmjINGOz61drR34gYRNiSYnlZEFuomF9qLVHYng2N01aHUHB6TMwKSGr3bkclRzI84nEivUuuBdsG+1xvFh9wPBee08xAhYCzNVfwC4cnaWZlCoN8NSKsHU1AMHVE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1628009248; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=bU4Kq4sFKPDOd6M7+IDY/pcNSlE+QD8anVznSdqANp0=; b=ctuvkfw9FKlNrNajKTJrBOOXhavYUUtMWGj22t3cLTrTiAtL+bQxsh4qZKJp7zWWReASlCeQtQTPRnBcgcjzYYUM9HoBna0dLnbOJVOUV9aHBNFbv7zCCVHp0sIEomKuBo7fbFvWCpfvoLsSE/glRCPa+DIu2gz9DQJbQuu7zGI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1628009248056547.4911598603885; Tue, 3 Aug 2021 09:47:28 -0700 (PDT) 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-442-yeKYPd3EOnCHIbK3lVVTCw-1; Tue, 03 Aug 2021 12:47:25 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 24BE387D553; Tue, 3 Aug 2021 16:47:17 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0080760CA1; Tue, 3 Aug 2021 16:47:16 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 9A3F74A70D; Tue, 3 Aug 2021 16:47:16 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 173CWoZ0022514 for ; Tue, 3 Aug 2021 08:32:50 -0400 Received: by smtp.corp.redhat.com (Postfix) id 2C4E913AD3; Tue, 3 Aug 2021 12:32:50 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.192.146]) by smtp.corp.redhat.com (Postfix) with ESMTP id A3D535E27A for ; Tue, 3 Aug 2021 12:32:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1628009247; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=bU4Kq4sFKPDOd6M7+IDY/pcNSlE+QD8anVznSdqANp0=; b=cMsfCz/C8+fZN0ImUP9JORKRjUzIMlj098DdFGotX7tPE5FqQkUvHsuZujZVbjIRhVFKjX MWPXFa2cbHRj6STdCRuB4R4sTFxxPvP4pwpNJF86oRGl2dlZH1JXOeC5th6htAoxd1UDoe S/o8XoMexkE9Z/TJKgcKg754s8HZ+ak= X-MC-Unique: yeKYPd3EOnCHIbK3lVVTCw-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 2/7] vmx2xmltest: Add a test case Date: Tue, 3 Aug 2021 14:32:26 +0200 Message-Id: <6351862927803e1a3a2f86077c4f80a4f25743c3.1627993626.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1628009249421100001 Content-Type: text/plain; charset="utf-8" This is an attachment from the following bug: https://bugzilla.redhat.com/show_bug.cgi?id=3D1738392 Notice that .vmx file has two scsi disks, but only one is reported in the XML. This will be fixed later. Signed-off-by: Michal Privoznik Reviewed-by: J=C3=A1n Tomko --- .../vmx2xml-esx-in-the-wild-11.vmx | 91 +++++++++++++++++++ .../vmx2xml-esx-in-the-wild-11.xml | 33 +++++++ tests/vmx2xmltest.c | 1 + 3 files changed, 125 insertions(+) create mode 100644 tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.vmx create mode 100644 tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.xml diff --git a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.vmx b/tests/vmx2x= mldata/vmx2xml-esx-in-the-wild-11.vmx new file mode 100644 index 0000000000..ae1d146f9a --- /dev/null +++ b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.vmx @@ -0,0 +1,91 @@ +.encoding =3D "UTF-8" +config.version =3D "8" +virtualHW.version =3D "14" +nvram =3D "esx6.7-rhel7.7-x86_64.nvram" +pciBridge0.present =3D "TRUE" +svga.present =3D "TRUE" +pciBridge4.present =3D "TRUE" +pciBridge4.virtualDev =3D "pcieRootPort" +pciBridge4.functions =3D "8" +pciBridge5.present =3D "TRUE" +pciBridge5.virtualDev =3D "pcieRootPort" +pciBridge5.functions =3D "8" +pciBridge6.present =3D "TRUE" +pciBridge6.virtualDev =3D "pcieRootPort" +pciBridge6.functions =3D "8" +pciBridge7.present =3D "TRUE" +pciBridge7.virtualDev =3D "pcieRootPort" +pciBridge7.functions =3D "8" +vmci0.present =3D "TRUE" +hpet0.present =3D "TRUE" +floppy0.present =3D "FALSE" +svga.vramSize =3D "8388608" +memSize =3D "2048" +powerType.powerOff =3D "default" +powerType.suspend =3D "default" +powerType.reset =3D "default" +tools.upgrade.policy =3D "manual" +sched.cpu.units =3D "mhz" +sched.cpu.affinity =3D "all" +vm.createDate =3D "1555568769667396" +scsi0.virtualDev =3D "pvscsi" +scsi0.present =3D "TRUE" +scsi0:0.deviceType =3D "scsi-hardDisk" +scsi0:0.fileName =3D "esx6.7-rhel7.7-x86_64-000004.vmdk" +sched.scsi0:0.shares =3D "normal" +sched.scsi0:0.throughputCap =3D "off" +scsi0:0.present =3D "TRUE" +ethernet0.virtualDev =3D "vmxnet3" +ethernet0.networkName =3D "VM Network" +ethernet0.addressType =3D "vpx" +ethernet0.generatedAddress =3D "00:50:56:AC:3E:A1" +ethernet0.uptCompatibility =3D "TRUE" +ethernet0.present =3D "TRUE" +ide0:0.deviceType =3D "cdrom-raw" +ide0:0.clientDevice =3D "TRUE" +ide0:0.fileName =3D "emptyBackingString" +ide0:0.present =3D "TRUE" +displayName =3D "esx6.7-rhel7.7-x86_64" +guestOS =3D "rhel7-64" +toolScripts.afterPowerOn =3D "TRUE" +toolScripts.afterResume =3D "TRUE" +toolScripts.beforeSuspend =3D "TRUE" +toolScripts.beforePowerOff =3D "TRUE" +uuid.bios =3D "42 2c 01 52 63 ab cd 03-96 50 43 01 ae 77 ae fd" +vc.uuid =3D "50 2c a2 29 12 eb 24 f6-0c 37 c0 25 ff 5d a0 05" +migrate.hostLog =3D "esx6.7-rhel7.7-x86_64-347128e5.hlog" +sched.cpu.min =3D "0" +sched.cpu.shares =3D "normal" +sched.mem.min =3D "0" +sched.mem.minSize =3D "0" +sched.mem.shares =3D "normal" +migrate.encryptionMode =3D "opportunistic" +numa.autosize.cookie =3D "10001" +numa.autosize.vcpu.maxPerVirtualNode =3D "1" +sched.swap.derivedName =3D "/vmfs/volumes/83bc25a5-593d7893/esx6.7-rhel7.7= -x86_64/esx6.7-rhel7.7-x86_64-352483fd.vswp" +uuid.location =3D "56 4d 17 9b 66 42 62 96-69 a4 0f c6 2b c5 b9 c6" +scsi0:0.redo =3D "" +pciBridge0.pciSlotNumber =3D "17" +pciBridge4.pciSlotNumber =3D "21" +pciBridge5.pciSlotNumber =3D "22" +pciBridge6.pciSlotNumber =3D "23" +pciBridge7.pciSlotNumber =3D "24" +scsi0.pciSlotNumber =3D "160" +ethernet0.pciSlotNumber =3D "192" +vmci0.pciSlotNumber =3D "32" +scsi0.sasWWID =3D "50 05 05 62 63 ab cd 00" +vmci0.id =3D "-1367888131" +monitor.phys_bits_used =3D "43" +vmotion.checkpointFBSize =3D "8388608" +vmotion.checkpointSVGAPrimarySize =3D "8388608" +cleanShutdown =3D "TRUE" +softPowerOff =3D "FALSE" +svga.guestBackedPrimaryAware =3D "TRUE" +tools.remindInstall =3D "FALSE" +tools.syncTime =3D "FALSE" +scsi0:16.deviceType =3D "scsi-hardDisk" +scsi0:16.fileName =3D "esx6.7-rhel7.7-x86_64_3.vmdk" +sched.scsi0:16.shares =3D "normal" +sched.scsi0:16.throughputCap =3D "off" +scsi0:16.present =3D "TRUE" +scsi0:16.redo =3D "" diff --git a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.xml b/tests/vmx2x= mldata/vmx2xml-esx-in-the-wild-11.xml new file mode 100644 index 0000000000..cf414975b3 --- /dev/null +++ b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.xml @@ -0,0 +1,33 @@ + + esx6.7-rhel7.7-x86_64 + 422c0152-63ab-cd03-9650-4301ae77aefd + 2097152 + 2097152 + 1 + + 1000 + + + hvm + + + destroy + restart + destroy + + + + +
+ + + + + + + + + + diff --git a/tests/vmx2xmltest.c b/tests/vmx2xmltest.c index 8f74648503..453641faf1 100644 --- a/tests/vmx2xmltest.c +++ b/tests/vmx2xmltest.c @@ -292,6 +292,7 @@ mymain(void) DO_TEST("esx-in-the-wild-8", "esx-in-the-wild-8"); DO_TEST("esx-in-the-wild-9", "esx-in-the-wild-9"); DO_TEST("esx-in-the-wild-10", "esx-in-the-wild-10"); + DO_TEST("esx-in-the-wild-11", "esx-in-the-wild-11"); =20 DO_TEST("gsx-in-the-wild-1", "gsx-in-the-wild-1"); DO_TEST("gsx-in-the-wild-2", "gsx-in-the-wild-2"); --=20 2.31.1 From nobody Wed May 8 14:28:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1628009352; cv=none; d=zohomail.com; s=zohoarc; b=NU0LDhWzYfvgSJpFM7WnMRUXWjrotUa6PNB/eCPYh2aQGW8zqlMnIMN/lMELcb8cOypv9Fi5cmHvdiOXOEzwoOM5TS56J+u9KvTUSioJAf3WnGfWoCHZEMibULDLXM+5DuwUU04idYbaLpuMEBcP6R7qyUkrkeBgMMZa0Zzsv5M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1628009352; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=eMWC51/cUlTQ5VpjuNxbLvS2JHNzrobUxuFiz44m5Xs=; b=XsgQx9X7nyG3MR5v0L4Vx/fEcZTvb9wbCxptiXHpdhJ3ULdJ6vaJm7d7Opbzc+F/oy1AKAg9yjMHcWXdjDkoPUqxvwTI/hheUROQV8AtscYgfpcDNGWr4kVBEJZeJSrIV9G8hb9ZsEtXMs228oAPLYgFGnjPnngsW9Rq6wbKjag= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1628009352635880.1202889887525; Tue, 3 Aug 2021 09:49:12 -0700 (PDT) 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-233-QO-rvVy9N8mj1RXii-NFpA-1; Tue, 03 Aug 2021 12:47:25 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3A997100F767; Tue, 3 Aug 2021 16:47:17 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1E0E5226E8; Tue, 3 Aug 2021 16:47:17 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id D86CB4A712; Tue, 3 Aug 2021 16:47:16 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 173CWpZ8022519 for ; Tue, 3 Aug 2021 08:32:51 -0400 Received: by smtp.corp.redhat.com (Postfix) id 079E65E27D; Tue, 3 Aug 2021 12:32:51 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.192.146]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7C37C5E275 for ; Tue, 3 Aug 2021 12:32:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1628009351; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=eMWC51/cUlTQ5VpjuNxbLvS2JHNzrobUxuFiz44m5Xs=; b=YOEjdLSJHvNhwbGzRV5oJoDPVHt6eMYIG9Szo/vYpTBRfjHYqNKicD45yAo2Sv8rfbt+ua TiMtlKVHelswUDoyWBkoxMo8TQb33iAb7L7Lr0LdKUOu95eBX0NvcMA4S5hJVNW4qu8YHw eQSrKDgEPWMUdYGIs1t7FZ75NVlsZUk= X-MC-Unique: QO-rvVy9N8mj1RXii-NFpA-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 3/7] vmx: Rework disk def allocation Date: Tue, 3 Aug 2021 14:32:27 +0200 Message-Id: <1bd6b5543a7e01b891b12fe13834a379c3289d53.1627993626.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1628009353555100001 Content-Type: text/plain; charset="utf-8" The way we parse VMX configuration is rather unfortunate, especially when it comes to disks. We allocate an array that can handle all possible disks but leave the array counter (ndisks) at zero and increase it only after successful parsing. But, we never size the array down to release unneeded chunks of memory. We can do better: we can use VIR_APPEND_ELEMENT() to allocate array as needed. Signed-off-by: Michal Privoznik Reviewed-by: J=C3=A1n Tomko --- src/vmx/vmx.c | 84 ++++++++++++++++++++++++++------------------------- 1 file changed, 43 insertions(+), 41 deletions(-) diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index c3c00a5c7e..7a934e067d 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -1719,10 +1719,6 @@ virVMXParseConfig(virVMXContext *ctx, if (def->graphics[def->ngraphics] !=3D NULL) ++def->ngraphics; =20 - /* def:disks: 4 * 15 scsi + 4 * 30 sata + 2 * 2 ide + 2 floppy =3D 186= */ - def->disks =3D g_new0(virDomainDiskDef *, 186); - def->ndisks =3D 0; - /* def:disks (scsi) */ for (controller =3D 0; controller < 4; ++controller) { if (virVMXParseSCSIController(conf, controller, &present, @@ -1734,6 +1730,8 @@ virVMXParseConfig(virVMXContext *ctx, continue; =20 for (unit =3D 0; unit < 16; ++unit) { + g_autoptr(virDomainDiskDef) disk =3D NULL; + if (unit =3D=3D 7) { /* * SCSI unit 7 is assigned to the SCSI controller and cann= ot be @@ -1744,25 +1742,23 @@ virVMXParseConfig(virVMXContext *ctx, =20 if (virVMXParseDisk(ctx, xmlopt, conf, VIR_DOMAIN_DISK_DEVICE_= DISK, VIR_DOMAIN_DISK_BUS_SCSI, controller, unit, - &def->disks[def->ndisks], def) < 0) { + &disk, def) < 0) { goto cleanup; } =20 - if (def->disks[def->ndisks] !=3D NULL) { - ++def->ndisks; + if (!disk && + virVMXParseDisk(ctx, xmlopt, conf, VIR_DOMAIN_DISK_DEVICE_= CDROM, + VIR_DOMAIN_DISK_BUS_SCSI, controller, unit, + &disk, def) < 0) { + goto cleanup; + } + + if (!disk) continue; - } =20 - if (virVMXParseDisk(ctx, xmlopt, conf, VIR_DOMAIN_DISK_DEVICE_= CDROM, - VIR_DOMAIN_DISK_BUS_SCSI, controller, uni= t, - &def->disks[def->ndisks], def) < 0) { + if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0) goto cleanup; - } - - if (def->disks[def->ndisks] !=3D NULL) - ++def->ndisks; } - } =20 /* add all the SCSI controllers we've seen, up until the last one that= is @@ -1787,27 +1783,27 @@ virVMXParseConfig(virVMXContext *ctx, continue; =20 for (unit =3D 0; unit < 30; ++unit) { + g_autoptr(virDomainDiskDef) disk =3D NULL; + if (virVMXParseDisk(ctx, xmlopt, conf, VIR_DOMAIN_DISK_DEVICE_= DISK, VIR_DOMAIN_DISK_BUS_SATA, controller, unit, - &def->disks[def->ndisks], def) < 0) { + &disk, def) < 0) { goto cleanup; } =20 - if (def->disks[def->ndisks] !=3D NULL) { - ++def->ndisks; - continue; - } - - if (virVMXParseDisk(ctx, xmlopt, conf, VIR_DOMAIN_DISK_DEVICE_= CDROM, + if (!disk && + virVMXParseDisk(ctx, xmlopt, conf, VIR_DOMAIN_DISK_DEVICE_= CDROM, VIR_DOMAIN_DISK_BUS_SATA, controller, uni= t, - &def->disks[def->ndisks], def) < 0) { + &disk, def) < 0) { goto cleanup; } =20 - if (def->disks[def->ndisks] !=3D NULL) - ++def->ndisks; + if (!disk) + continue; + + if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0) + goto cleanup; } - } =20 /* add all the SATA controllers we've seen, up until the last one that= is @@ -1824,38 +1820,44 @@ virVMXParseConfig(virVMXContext *ctx, /* def:disks (ide) */ for (bus =3D 0; bus < 2; ++bus) { for (unit =3D 0; unit < 2; ++unit) { + g_autoptr(virDomainDiskDef) disk =3D NULL; + if (virVMXParseDisk(ctx, xmlopt, conf, VIR_DOMAIN_DISK_DEVICE_= DISK, VIR_DOMAIN_DISK_BUS_IDE, bus, unit, - &def->disks[def->ndisks], def) < 0) { + &disk, def) < 0) { goto cleanup; } =20 - if (def->disks[def->ndisks] !=3D NULL) { - ++def->ndisks; + if (!disk && + virVMXParseDisk(ctx, xmlopt, conf, VIR_DOMAIN_DISK_DEVICE_= CDROM, + VIR_DOMAIN_DISK_BUS_IDE, bus, unit, + &disk, def) < 0) { + goto cleanup; + } + + if (!disk) continue; - } =20 - if (virVMXParseDisk(ctx, xmlopt, conf, VIR_DOMAIN_DISK_DEVICE_= CDROM, - VIR_DOMAIN_DISK_BUS_IDE, bus, unit, - &def->disks[def->ndisks], def) < 0) { + if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0) goto cleanup; - } - - if (def->disks[def->ndisks] !=3D NULL) - ++def->ndisks; } } =20 /* def:disks (floppy) */ for (unit =3D 0; unit < 2; ++unit) { + g_autoptr(virDomainDiskDef) disk =3D NULL; + if (virVMXParseDisk(ctx, xmlopt, conf, VIR_DOMAIN_DISK_DEVICE_FLOP= PY, VIR_DOMAIN_DISK_BUS_FDC, 0, unit, - &def->disks[def->ndisks], def) < 0) { + &disk, def) < 0) { goto cleanup; } =20 - if (def->disks[def->ndisks] !=3D NULL) - ++def->ndisks; + if (!disk) + continue; + + if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0) + goto cleanup; } =20 /* def:fss */ --=20 2.31.1 From nobody Wed May 8 14:28:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1628009223; cv=none; d=zohomail.com; s=zohoarc; b=MIqPeoouXye35neKSVcKOzB5Bhj5aI/B0gZ9z8AHN67QhXng8xXs2ABlWlrzbuv6NECsXS/nuKilw9BuwH0tbmUdCzXssHhPg87P2vvQjofECWcH/ZOwQ5Upe2stye1a046X8quCcZJ4ArlK7zlkQl+vI4+5b71bWP+dw4eroDo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1628009223; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=chwNDSkD0Z+fvru4639aq4qBK9qC41yYT6gzD3VxuKM=; b=BWRe6JGBChgvMGFrzRaXB8Hs8helMhsRYupWrTrqYcWvUqc0K2JNp4djCBMCgbB2l7gQiLBuwoR8JKFA7nZPW/kVPwh8iRnPbZwKaFDv6NmnocpAxaMU3PoJoMrS1A3ybPEIvbwWgR1ZqNM/PPQtgEld2feQsSJpJnpakjr74J0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1628009223893325.55650255451167; Tue, 3 Aug 2021 09:47:03 -0700 (PDT) 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-353-u60y-OVpPXmfB1WhUg-_8g-1; Tue, 03 Aug 2021 12:47:01 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 84A5593920; Tue, 3 Aug 2021 16:46:55 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 24CD2136F5; Tue, 3 Aug 2021 16:46:55 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 3B277181A2A6; Tue, 3 Aug 2021 16:46:51 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 173CWpNY022528 for ; Tue, 3 Aug 2021 08:32:51 -0400 Received: by smtp.corp.redhat.com (Postfix) id D65AD175B3; Tue, 3 Aug 2021 12:32:51 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.192.146]) by smtp.corp.redhat.com (Postfix) with ESMTP id 54FA75E7A1 for ; Tue, 3 Aug 2021 12:32:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1628009222; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=chwNDSkD0Z+fvru4639aq4qBK9qC41yYT6gzD3VxuKM=; b=VFXvLC/E/xxERtg8pNN9qia86IGaAP0L3YwM4ik0cIdWhdCMkoKp8nTeHUoTOjav1ilIzz zgkC/U010gMUf1QYpOUoQQ+2p0m1kwqznzh5SgW9j/xnoPrjBpifYoUIwXrZ2JeLtXlunD Y6fpQMxFxPzPB4nUWxVmxknHNUlmpIY= X-MC-Unique: u60y-OVpPXmfB1WhUg-_8g-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 4/7] vmx: Drop needless check in virVMXParseDisk() Date: Tue, 3 Aug 2021 14:32:28 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1628009226336100002 Content-Type: text/plain; charset="utf-8" After previous patch it can no longer happen that @def will be NULL and *def won't be. Signed-off-by: Michal Privoznik Reviewed-by: J=C3=A1n Tomko --- src/vmx/vmx.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 7a934e067d..11b6fcbdf8 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -2218,11 +2218,6 @@ virVMXParseDisk(virVMXContext *ctx, virDomainXMLOpti= on *xmlopt, virConf *conf, char mode_name[32] =3D ""; char *mode =3D NULL; =20 - if (def =3D=3D NULL || *def !=3D NULL) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid argument")= ); - return -1; - } - if (!(*def =3D virDomainDiskDefNew(xmlopt))) return -1; =20 --=20 2.31.1 From nobody Wed May 8 14:28:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1628009255; cv=none; d=zohomail.com; s=zohoarc; b=Nqrp54y2o94uaOUPvZmxvpsjOK3GZ/f2ziou85LLBOurGjvrm/Mch48O3Nw1q+Na5uwsN2yx0PX6uBJdZf+5p2j04d+aPivE9nIoLxUXIyH2jOWVX1sw0/UaciFt7E6nlVGM9AvpyqoDhnwj0b9fnM7PGnRADzoTR/9VYGJ7L1A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1628009255; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NEUEFNdNCxEkNfG+R/MGHQbiS58MwryAd2hTPwcdg44=; b=aA77nBlvAwbSp0EwaH6DTDtYPsXv0iDC8S0Q97FL3+3C6l9TvxtLTqzA6S7ndExjoYpjllAK1JZKgMiy5AtFmiB9WLzwqEwfju+5TKok+B8Bbx8CR/7aKgaLLAek1UklgL7o9wdQpQ6TlZ+gBZYHOkmCSkEnNtgHO3gApv3Ph0g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1628009255404705.9745108405193; Tue, 3 Aug 2021 09:47:35 -0700 (PDT) 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-134-LrDJVebSPLuaOqOdlBgjiQ-1; Tue, 03 Aug 2021 12:47:30 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0C3C893930; Tue, 3 Aug 2021 16:47:20 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DE9F129676; Tue, 3 Aug 2021 16:47:19 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id A98054A715; Tue, 3 Aug 2021 16:47:19 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 173CWqwe022537 for ; Tue, 3 Aug 2021 08:32:52 -0400 Received: by smtp.corp.redhat.com (Postfix) id ABE3D175B3; Tue, 3 Aug 2021 12:32:52 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.192.146]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2D0705E274 for ; Tue, 3 Aug 2021 12:32:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1628009254; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=NEUEFNdNCxEkNfG+R/MGHQbiS58MwryAd2hTPwcdg44=; b=X1+tUVxz/yYeqFOJWCfTs6UJsIxVypbJ8asNPVMM/u2b10bJyvx94fK4ERbNLV17BEZB2f YZUVyqKo3rRL5D+KJwATW3oik35hZkZ8hfA8FxSJrP28XwJGdIiRnOY5mnRFCD/rdJxrZ9 rHbTPNec4UFfxBFQYgVarBa++TMksPk= X-MC-Unique: LrDJVebSPLuaOqOdlBgjiQ-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 5/7] conf: Store SCSI bus length in virDomainDef Date: Tue, 3 Aug 2021 14:32:29 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1628009256377100009 Content-Type: text/plain; charset="utf-8" Libvirt assumes that a SCSI bus can fit up to 8 devices (including controller itself), except for so called wide bus which can accommodate up to 16 devices (again, including controller). This plays important role when computing 'drive' address in virDomainDiskDefAssignAddress(). So far, the only driver that enables wide SCSI bus is VMX. But with never releases, ESX is capable of "super wide" bus (64 devices). We can blindly bump the limit in our code because then we would compute address that's invalid for older ESX versions that we still want to support. Unfortunately, I haven't found a better place where to store this than virDomainDef. Signed-off-by: Michal Privoznik Reviewed-by: J=C3=A1n Tomko --- src/bhyve/bhyve_parse_command.c | 2 +- src/conf/domain_conf.c | 33 ++++++++++++++------------------- src/conf/domain_conf.h | 9 ++++++++- src/hyperv/hyperv_driver.c | 4 ++-- src/libxl/libxl_driver.c | 2 +- src/libxl/xen_xl.c | 2 +- src/libxl/xen_xm.c | 2 +- src/lxc/lxc_native.c | 2 +- src/openvz/openvz_conf.c | 2 +- src/qemu/qemu_process.c | 2 +- src/vbox/vbox_common.c | 8 ++++---- src/vmx/vmx.c | 2 +- src/vz/vz_sdk.c | 2 +- tests/genericxml2xmltest.c | 2 +- tests/openvzutilstest.c | 2 +- tests/qemublocktest.c | 2 +- tests/qemumonitortestutils.c | 2 +- tests/securityselinuxtest.c | 2 +- 18 files changed, 42 insertions(+), 40 deletions(-) diff --git a/src/bhyve/bhyve_parse_command.c b/src/bhyve/bhyve_parse_comman= d.c index 9b97c262ec..7b3a830b45 100644 --- a/src/bhyve/bhyve_parse_command.c +++ b/src/bhyve/bhyve_parse_command.c @@ -956,7 +956,7 @@ bhyveParseCommandLineString(const char* nativeConfig, int loader_argc =3D 0; char **loader_argv =3D NULL; =20 - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(xmlopt))) goto cleanup; =20 /* Initialize defaults. */ diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 06c1fcf5e5..4ae78fa04d 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -3790,7 +3790,7 @@ virDomainObjNew(virDomainXMLOption *xmlopt) =20 =20 virDomainDef * -virDomainDefNew(void) +virDomainDefNew(virDomainXMLOption *xmlopt) { virDomainDef *ret; =20 @@ -3803,6 +3803,11 @@ virDomainDefNew(void) ret->mem.soft_limit =3D VIR_DOMAIN_MEMORY_PARAM_UNLIMITED; ret->mem.swap_hard_limit =3D VIR_DOMAIN_MEMORY_PARAM_UNLIMITED; =20 + if (xmlopt && xmlopt->config.features & VIR_DOMAIN_DEF_FEATURE_WIDE_SC= SI) + ret->scsiBusMaxUnit =3D SCSI_WIDE_BUS_MAX_CONT_UNIT; + else + ret->scsiBusMaxUnit =3D SCSI_NARROW_BUS_MAX_CONT_UNIT; + return ret; =20 error: @@ -5130,12 +5135,11 @@ virDomainSCSIDriveAddressIsUsed(const virDomainDef = *def, /* Find out the next usable "unit" of a specific controller */ static int virDomainControllerSCSINextUnit(const virDomainDef *def, - unsigned int max_unit, unsigned int controller) { size_t i; =20 - for (i =3D 0; i < max_unit; i++) { + for (i =3D 0; i < def->scsiBusMaxUnit; i++) { /* Default to assigning addresses using bus =3D target =3D 0 */ const virDomainDeviceDriveAddress addr =3D {controller, 0, 0, i}; =20 @@ -5147,22 +5151,13 @@ virDomainControllerSCSINextUnit(const virDomainDef = *def, } =20 =20 -#define SCSI_WIDE_BUS_MAX_CONT_UNIT 16 -#define SCSI_NARROW_BUS_MAX_CONT_UNIT 7 - static void -virDomainHostdevAssignAddress(virDomainXMLOption *xmlopt, +virDomainHostdevAssignAddress(virDomainXMLOption *xmlopt G_GNUC_UNUSED, const virDomainDef *def, virDomainHostdevDef *hostdev) { int next_unit =3D 0; int controller =3D 0; - unsigned int max_unit; - - if (xmlopt->config.features & VIR_DOMAIN_DEF_FEATURE_WIDE_SCSI) - max_unit =3D SCSI_WIDE_BUS_MAX_CONT_UNIT; - else - max_unit =3D SCSI_NARROW_BUS_MAX_CONT_UNIT; =20 /* NB: Do not attempt calling virDomainDefMaybeAddController to * automagically add a "new" controller. Doing so will result in @@ -5177,7 +5172,7 @@ virDomainHostdevAssignAddress(virDomainXMLOption *xml= opt, * hostdev being added to the as yet to be created controller. */ do { - next_unit =3D virDomainControllerSCSINextUnit(def, max_unit, contr= oller); + next_unit =3D virDomainControllerSCSINextUnit(def, controller); if (next_unit < 0) controller++; } while (next_unit < 0); @@ -7647,7 +7642,7 @@ virDomainDeviceFindSCSIController(const virDomainDef = *def, } =20 int -virDomainDiskDefAssignAddress(virDomainXMLOption *xmlopt, +virDomainDiskDefAssignAddress(virDomainXMLOption *xmlopt G_GNUC_UNUSED, virDomainDiskDef *def, const virDomainDef *vmdef) { @@ -7667,14 +7662,14 @@ virDomainDiskDefAssignAddress(virDomainXMLOption *x= mlopt, =20 def->info.type =3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE; =20 - if (xmlopt->config.features & VIR_DOMAIN_DEF_FEATURE_WIDE_SCSI) { + if (vmdef->scsiBusMaxUnit > SCSI_NARROW_BUS_MAX_CONT_UNIT) { /* For a wide SCSI bus we define the default mapping to be * 16 units per bus, 1 bus per controller, many controllers. * Unit 7 is the SCSI controller itself. Therefore unit 7 * cannot be assigned to disks and is skipped. */ - controller =3D idx / 15; - unit =3D idx % 15; + controller =3D idx / (vmdef->scsiBusMaxUnit - 1); + unit =3D idx % (vmdef->scsiBusMaxUnit - 1); =20 /* Skip the SCSI controller at unit 7 */ if (unit >=3D 7) @@ -19549,7 +19544,7 @@ virDomainDefParseXML(xmlDocPtr xml, return NULL; } =20 - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(xmlopt))) return NULL; =20 if (virDomainDefParseIDs(def, ctxt, flags, &uuid_generated) < 0) diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index ca21082624..80dd1b96a4 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2726,6 +2726,11 @@ struct _virDomainVirtioOptions { virTristateSwitch packed; }; =20 + +#define SCSI_WIDE_BUS_MAX_CONT_UNIT 16 +#define SCSI_NARROW_BUS_MAX_CONT_UNIT 7 + + /* * Guest VM main configuration * @@ -2904,6 +2909,8 @@ struct _virDomainDef { callbacks failed for a non-critical reason (was not able to fill in some data) and thus should be re-run before starting */ + + unsigned int scsiBusMaxUnit; }; =20 =20 @@ -3351,7 +3358,7 @@ virDomainGraphicsDefNew(virDomainXMLOption *xmlopt); virDomainNetDef * virDomainNetDefNew(virDomainXMLOption *xmlopt); =20 -virDomainDef *virDomainDefNew(void); +virDomainDef *virDomainDefNew(virDomainXMLOption *xmlopt); =20 void virDomainObjAssignDef(virDomainObj *domain, virDomainDef *def, diff --git a/src/hyperv/hyperv_driver.c b/src/hyperv/hyperv_driver.c index ff20d5548b..6e19cd6092 100644 --- a/src/hyperv/hyperv_driver.c +++ b/src/hyperv/hyperv_driver.c @@ -2688,7 +2688,7 @@ hypervDomainGetXMLDesc(virDomainPtr domain, unsigned = int flags) =20 virCheckFlags(VIR_DOMAIN_XML_COMMON_FLAGS, NULL); =20 - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(priv->xmlopt))) return NULL; =20 virUUIDFormat(domain->uuid, uuid_string); @@ -3058,7 +3058,7 @@ hypervDomainAttachDeviceFlags(virDomainPtr domain, co= nst char *xml, unsigned int virUUIDFormat(domain->uuid, uuid_string); =20 /* get domain definition */ - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(priv->xmlopt))) return -1; =20 /* get domain device definition */ diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 0c3c53c1d1..6a3938ead4 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -584,7 +584,7 @@ libxlAddDom0(libxlDriverPrivate *driver) * created. */ if ((vm =3D virDomainObjListFindByID(driver->domains, 0)) =3D=3D NULL)= { - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(driver->xmlopt))) goto cleanup; =20 def->id =3D 0; diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c index c0905b08d8..066f39ffe3 100644 --- a/src/libxl/xen_xl.c +++ b/src/libxl/xen_xl.c @@ -1136,7 +1136,7 @@ xenParseXL(virConf *conf, { virDomainDef *def =3D NULL; =20 - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(xmlopt))) return NULL; =20 def->virtType =3D VIR_DOMAIN_VIRT_XEN; diff --git a/src/libxl/xen_xm.c b/src/libxl/xen_xm.c index feec25b9f4..1e0ea9e5b9 100644 --- a/src/libxl/xen_xm.c +++ b/src/libxl/xen_xm.c @@ -421,7 +421,7 @@ xenParseXM(virConf *conf, { virDomainDef *def =3D NULL; =20 - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(xmlopt))) return NULL; =20 def->virtType =3D VIR_DOMAIN_VIRT_XEN; diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c index 4bdd960e23..6ebd2e8e75 100644 --- a/src/lxc/lxc_native.c +++ b/src/lxc/lxc_native.c @@ -1109,7 +1109,7 @@ lxcParseConfigString(const char *config, if (!(properties =3D virConfReadString(config, VIR_CONF_FLAG_LXC_FORMA= T))) return NULL; =20 - if (!(vmdef =3D virDomainDefNew())) + if (!(vmdef =3D virDomainDefNew(xmlopt))) goto error; =20 if (virUUIDGenerate(vmdef->uuid) < 0) { diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c index 2a794801ae..a0ee4f8fb4 100644 --- a/src/openvz/openvz_conf.c +++ b/src/openvz/openvz_conf.c @@ -486,7 +486,7 @@ int openvzLoadDomains(struct openvz_driver *driver) } *line++ =3D '\0'; =20 - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(driver->xmlopt))) goto cleanup; =20 def->virtType =3D VIR_DOMAIN_VIRT_OPENVZ; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 521fda57da..9dee6954bd 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -9117,7 +9117,7 @@ qemuProcessQMPConnectMonitor(qemuProcessQMP *proc) =20 if (!(xmlopt =3D virDomainXMLOptionNew(NULL, NULL, NULL, NULL, NULL)) = || !(proc->vm =3D virDomainObjNew(xmlopt)) || - !(proc->vm->def =3D virDomainDefNew())) + !(proc->vm->def =3D virDomainDefNew(xmlopt))) goto cleanup; =20 proc->vm->pid =3D proc->pid; diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index 1ca521321c..a6c9877944 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -4009,7 +4009,7 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, u= nsigned int flags) if (openSessionForMachine(data, dom->uuid, &iid, &machine) < 0) goto cleanup; =20 - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(data->xmlopt))) goto cleanup; =20 gVBoxAPI.UIMachine.GetAccessible(machine, &accessible); @@ -4252,7 +4252,7 @@ static int vboxDomainAttachDeviceImpl(virDomainPtr do= m, return ret; =20 VBOX_IID_INITIALIZE(&iid); - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(data->xmlopt))) return ret; =20 def->os.type =3D VIR_DOMAIN_OSTYPE_HVM; @@ -4371,7 +4371,7 @@ static int vboxDomainDetachDevice(virDomainPtr dom, c= onst char *xml) return ret; =20 VBOX_IID_INITIALIZE(&iid); - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(data->xmlopt))) return ret; =20 def->os.type =3D VIR_DOMAIN_OSTYPE_HVM; @@ -6124,7 +6124,7 @@ static char *vboxDomainSnapshotGetXMLDesc(virDomainSn= apshotPtr snapshot, goto cleanup; =20 if (!(def =3D virDomainSnapshotDefNew()) || - !(def->parent.dom =3D virDomainDefNew())) + !(def->parent.dom =3D virDomainDefNew(data->xmlopt))) goto cleanup; defdom =3D def->parent.dom; def->parent.name =3D g_strdup(snapshot->name); diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 11b6fcbdf8..192f1bd252 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -1445,7 +1445,7 @@ virVMXParseConfig(virVMXContext *ctx, goto cleanup; =20 /* Allocate domain def */ - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(xmlopt))) goto cleanup; =20 def->virtType =3D VIR_DOMAIN_VIRT_VMWARE; diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index e09950812d..91102dca85 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -1809,7 +1809,7 @@ prlsdkLoadDomain(struct _vzDriver *driver, PRL_HANDLE job; char uuidstr[VIR_UUID_STRING_BRACED_BUFLEN]; =20 - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(driver->xmlopt))) goto error; =20 if (!(def->name =3D prlsdkGetStringParamVar(PrlVmCfg_GetName, sdkdom))) diff --git a/tests/genericxml2xmltest.c b/tests/genericxml2xmltest.c index ef51ed91a6..54622ea831 100644 --- a/tests/genericxml2xmltest.c +++ b/tests/genericxml2xmltest.c @@ -100,7 +100,7 @@ testCompareBackupXML(const void *opaque) } =20 /* create a fake definition and fill it with disks */ - if (!(fakedef =3D virDomainDefNew())) + if (!(fakedef =3D virDomainDefNew(xmlopt))) return -1; =20 fakedef->ndisks =3D backup->ndisks + 1; diff --git a/tests/openvzutilstest.c b/tests/openvzutilstest.c index 136c8011b8..ddb2fcbe6c 100644 --- a/tests/openvzutilstest.c +++ b/tests/openvzutilstest.c @@ -103,7 +103,7 @@ testReadNetworkConf(const void *data G_GNUC_UNUSED) .caps =3D openvzCapsInit(), }; =20 - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(driver.xmlopt))) goto cleanup; =20 def->os.init =3D g_strdup("/sbin/init"); diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c index 0513e5bfc0..308668f2b8 100644 --- a/tests/qemublocktest.c +++ b/tests/qemublocktest.c @@ -279,7 +279,7 @@ testQemuDiskXMLToProps(const void *opaque) VIR_DOMAIN_DEF_PARSE_STATUS))) return -1; =20 - if (!(vmdef =3D virDomainDefNew())) + if (!(vmdef =3D virDomainDefNew(data->driver->xmlopt))) return -1; =20 virDomainDiskInsert(vmdef, disk); diff --git a/tests/qemumonitortestutils.c b/tests/qemumonitortestutils.c index 143dd954e6..059d0d3b3b 100644 --- a/tests/qemumonitortestutils.c +++ b/tests/qemumonitortestutils.c @@ -1047,7 +1047,7 @@ qemuMonitorCommonTestNew(virDomainXMLOption *xmlopt, test->vm =3D virDomainObjNew(xmlopt); if (!test->vm) goto error; - if (!(test->vm->def =3D virDomainDefNew())) + if (!(test->vm->def =3D virDomainDefNew(xmlopt))) goto error; } =20 diff --git a/tests/securityselinuxtest.c b/tests/securityselinuxtest.c index 9b65eeb994..119ad6df34 100644 --- a/tests/securityselinuxtest.c +++ b/tests/securityselinuxtest.c @@ -67,7 +67,7 @@ testBuildDomainDef(bool dynamic, virDomainDef *def; virSecurityLabelDef *secdef =3D NULL; =20 - if (!(def =3D virDomainDefNew())) + if (!(def =3D virDomainDefNew(NULL))) goto error; =20 def->virtType =3D VIR_DOMAIN_VIRT_KVM; --=20 2.31.1 From nobody Wed May 8 14:28:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1628009292; cv=none; d=zohomail.com; s=zohoarc; b=F5nrHPHepFRAgv0Mjq18uYg1RbdAJ8zne4JwPIQyAsFqwhIapDLPdjQ75WyPNT2kVAuENcVI+8Zl5NTOkNg9BeRu7XemNRoFORSMwleQrIJbKWWOqpo0GMuuASsL82TFCTYmzp28XeDaBoLpuf0Uf1MXTcR2pNt/9fa0Fky9xa0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1628009292; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=tBu2CBr1gmx4rc3NVmqtF/QrTCR+k0gLD7WgjLSbxTY=; b=f2h2tQKTYp/ZurzXHtCIMm2+BvNkEVIl8gDm42c8Rdc97KZiMhA3xUd/EEGMfXL8D9Ae4prZDHtwP4eWGmqqSSKsLAaFAEGzg8H+IkJi5u5mGrhWhVtJe7+mh8dNQhMCM6cuzabkBj40LYM5NMcN7B7Zt/1PxlT02aZ19TjnXb8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1628009292985755.856132361114; Tue, 3 Aug 2021 09:48:12 -0700 (PDT) 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-113-hyxhT7P-OCSotrAcUUYZqQ-1; Tue, 03 Aug 2021 12:47:21 -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 3A574801B3D; Tue, 3 Aug 2021 16:47:14 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 102F527CA9; Tue, 3 Aug 2021 16:47:14 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 71CDC4A7CD; Tue, 3 Aug 2021 16:47:13 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 173CWsQG022543 for ; Tue, 3 Aug 2021 08:32:54 -0400 Received: by smtp.corp.redhat.com (Postfix) id BA292798B9; Tue, 3 Aug 2021 12:32:53 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.192.146]) by smtp.corp.redhat.com (Postfix) with ESMTP id 108FD78AAF for ; Tue, 3 Aug 2021 12:32:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1628009291; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=tBu2CBr1gmx4rc3NVmqtF/QrTCR+k0gLD7WgjLSbxTY=; b=iTYvPD0+nDxnWGRbwzIWIGyfLAJ1OknKGy7C101K6j6q4KrDJLTYQs0+GgLzhdHDT9pP8e 5YxD+pvo2BavVP9br+JVfi4Ho24iR4XygxGEZbxXaStPA3iyq0LJ90zigaEchlpzU9tFMX MB35s8jDWcy1K2NL9SUu83QxalzakgY= X-MC-Unique: hyxhT7P-OCSotrAcUUYZqQ-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 6/7] vmx: Support super wide SCSI bus Date: Tue, 3 Aug 2021 14:32:30 +0200 Message-Id: <01aecca25b901c80e6d182f7f064003d88f1ecda.1627993626.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1628009294847100001 Content-Type: text/plain; charset="utf-8" Since its 6.7 release, vSphere allows up to 64 units on a SCSI bus [1]. The release version translates to virtualHW_version 13 and thus if we are dealing with sufficiently new version we can enable the feature. 1: https://configmax.vmware.com/guest?vmwareproduct=3DvSphere&release=3DvSp= here%206.7&categories=3D1-0 Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=3D1738392 Signed-off-by: Michal Privoznik Reviewed-by: J=C3=A1n Tomko --- src/conf/domain_conf.h | 1 + src/vmx/vmx.c | 13 ++++++++----- tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.xml | 5 +++++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 80dd1b96a4..c57b77a59c 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2727,6 +2727,7 @@ struct _virDomainVirtioOptions { }; =20 =20 +#define SCSI_SUPER_WIDE_BUS_MAX_CONT_UNIT 64 #define SCSI_WIDE_BUS_MAX_CONT_UNIT 16 #define SCSI_NARROW_BUS_MAX_CONT_UNIT 7 =20 diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 192f1bd252..f706e2023a 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -1476,6 +1476,8 @@ virVMXParseConfig(virVMXContext *ctx, "4 or higher but found %lld"), virtualHW_version); goto cleanup; + } else if (virtualHW_version >=3D 13) { + def->scsiBusMaxUnit =3D SCSI_SUPER_WIDE_BUS_MAX_CONT_UNIT; } =20 /* vmx:uuid.bios -> def:uuid */ @@ -1729,7 +1731,7 @@ virVMXParseConfig(virVMXContext *ctx, if (! present) continue; =20 - for (unit =3D 0; unit < 16; ++unit) { + for (unit =3D 0; unit < def->scsiBusMaxUnit; unit++) { g_autoptr(virDomainDiskDef) disk =3D NULL; =20 if (unit =3D=3D 7) { @@ -2169,7 +2171,8 @@ virVMXParseDisk(virVMXContext *ctx, virDomainXMLOptio= n *xmlopt, virConf *conf, * VIR_DOMAIN_DISK_DEVICE_LUN} * busType =3D VIR_DOMAIN_DISK_BUS_SCSI * controllerOrBus =3D [0..3] -> controller - * unit =3D [0..6,8..15] + * unit =3D [0..6,8..15] for virtualHW_version < 13 + * unit =3D [0..6,8..64] for virtualHW_version >=3D 13 * * device =3D {VIR_DOMAIN_DISK_DEVICE_DISK, * VIR_DOMAIN_DISK_DEVICE_CDROM, @@ -2235,10 +2238,10 @@ virVMXParseDisk(virVMXContext *ctx, virDomainXMLOpt= ion *xmlopt, virConf *conf, goto cleanup; } =20 - if (unit < 0 || unit > 15 || unit =3D=3D 7) { + if (unit < 0 || unit > vmdef->scsiBusMaxUnit || unit =3D=3D 7)= { virReportError(VIR_ERR_INTERNAL_ERROR, - _("SCSI unit index %d out of [0..6,8..15] r= ange"), - unit); + _("SCSI unit index %d out of [0..6,8..%u] r= ange"), + unit, vmdef->scsiBusMaxUnit); goto cleanup; } =20 diff --git a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.xml b/tests/vmx2x= mldata/vmx2xml-esx-in-the-wild-11.xml index cf414975b3..8807a057d7 100644 --- a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.xml +++ b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.xml @@ -20,6 +20,11 @@
+ + + +
+ --=20 2.31.1 From nobody Wed May 8 14:28:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1628009248; cv=none; d=zohomail.com; s=zohoarc; b=W9TbxVpySdHgmt/aJENRMxXMiL3yxqSPY9Es6gNpTpDX1jnudNvQNyTkvb31SvkGf0dXUBNWRUr5k7vKcklfq/orL3XS62CkxQpj/SRZnq03Uwwz3dXOHr+Pp1h4SdU1Bd7mtyZOZnoQGBu7zLwcIWPUhQqG/Dfph4gb3AxyG5E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1628009248; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Abcm6hC8l8aAA6DyUtCFozmqmxqNdRu+dSabRi6UabQ=; b=M7If9KF2hwrVzKJquieJLfTFBt/0DaG6ces/dGLppFp8ILxGO3Hjri+Hc+jWZ4wz3E3uYANgqqmybtCwZeXvUCzsZrngZpeekKieMrPobvOhUOeQub1TxVTQVhhnW58q8pLPfW++SwLxNFyPhTb5sb8rSFkRiS9Q03e5X6hySks= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1628009248135162.65281018630344; Tue, 3 Aug 2021 09:47:28 -0700 (PDT) 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-548-dRxtoTYLOKOwUDRPThS22A-1; Tue, 03 Aug 2021 12:47:25 -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 7524893922; Tue, 3 Aug 2021 16:47:17 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D37BD282DC; Tue, 3 Aug 2021 16:47:16 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 9CAF8181A2A9; Tue, 3 Aug 2021 16:47:16 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 173CWs35022548 for ; Tue, 3 Aug 2021 08:32:54 -0400 Received: by smtp.corp.redhat.com (Postfix) id 909CC798CF; Tue, 3 Aug 2021 12:32:54 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.192.146]) by smtp.corp.redhat.com (Postfix) with ESMTP id E9E6379A1D for ; Tue, 3 Aug 2021 12:32:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1628009247; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=Abcm6hC8l8aAA6DyUtCFozmqmxqNdRu+dSabRi6UabQ=; b=VOEcDhMDx5hjgs7zjfY4obEfMmiurjvzJsVW7Ol4ER53u+NPVcCHEsSr/6at8pbueP08Jw fi7IxTAuWUMt54TBucJO2hfbUuMr0tOSLDiwjBNINtvP1c+3N24oo7IfZi72nr+s4JJFit VjTv+JCFywTV7uKlZkfJrnZy80iKdQ8= X-MC-Unique: dRxtoTYLOKOwUDRPThS22A-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 7/7] DO NOT MERGE Date: Tue, 3 Aug 2021 14:32:31 +0200 Message-Id: <163f7e3668aaaf8b66159568dc02bbb9344a0a3d.1627993626.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1628009249578100002 Content-Type: text/plain; charset="utf-8" This is just a example to confirm the previous commit works. I don't think it should be merged, because it modifies a real life example. Signed-off-by: Michal Privoznik Reviewed-by: J=C3=A1n Tomko --- tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.vmx | 6 ++++++ tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.xml | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.vmx b/tests/vmx2x= mldata/vmx2xml-esx-in-the-wild-11.vmx index ae1d146f9a..7ea9a73113 100644 --- a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.vmx +++ b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.vmx @@ -89,3 +89,9 @@ sched.scsi0:16.shares =3D "normal" sched.scsi0:16.throughputCap =3D "off" scsi0:16.present =3D "TRUE" scsi0:16.redo =3D "" +scsi0:63.deviceType =3D "scsi-hardDisk" +scsi0:63.fileName =3D "esx6.7-rhel7.7-x86_64_3.vmdk" +sched.scsi0:63.shares =3D "normal" +sched.scsi0:63.throughputCap =3D "off" +scsi0:63.present =3D "TRUE" +scsi0:63.redo =3D "" diff --git a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.xml b/tests/vmx2x= mldata/vmx2xml-esx-in-the-wild-11.xml index 8807a057d7..d09ac64a42 100644 --- a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.xml +++ b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-11.xml @@ -25,6 +25,11 @@
+ + + +
+ --=20 2.31.1