From nobody Tue Sep 9 03:13:48 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1748860844; cv=none; d=zohomail.com; s=zohoarc; b=hGcH+sbGhJa5b+B0YJI45wZLklHSbVqKPwOO+ce2ATaLOYDuGQAXyyTX9JixOarLfvjeY5FNMlNhF1V0WK+Ry5qCDfBD60273kH5jXE0RZmn/o8rpkxgEGMcTrlynepMZa/dt2QAyvSB/dzl0bqnJVoca8RY4Mfdg8e7gpaRXs0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1748860844; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=J6TP4VS6c/aXxTv8bR4uKFP3NvUxet9dr8L38YpwS5k=; b=IsGRo2BKVwpjaUUx9ksyi2jui0ZDetn/uXiNMR1u49/McyD8cTEypA+hplrFzYpFXQE+jqm3gQA2QhvA4ZzTaDc7L1qdRIX2XGLJonK9mQo2Wc5YT72EK1Za9ZdZXYxa/LpYRZhKBxoQrrWsHgJydUQehMB6kDNzRaROgFS/BVo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1748860844205905.291645248001; Mon, 2 Jun 2025 03:40:44 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 3459AE77; Mon, 2 Jun 2025 06:40:43 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id BB8BE155D; Mon, 2 Jun 2025 06:31:39 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 894191433; Mon, 2 Jun 2025 06:31:10 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id A40D6E77 for ; Mon, 2 Jun 2025 06:31:05 -0400 (EDT) Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-648-_qP1irOWNMqbSErepSicAQ-1; Mon, 02 Jun 2025 06:31:04 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-450cf229025so11059845e9.1 for ; Mon, 02 Jun 2025 03:31:03 -0700 (PDT) Received: from wheatley.localdomain ([85.93.96.130]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f00971efsm14724935f8f.62.2025.06.02.03.30.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Jun 2025 03:31:00 -0700 (PDT) Received: from wheatley.brq.redhat.com (wheatley.k8r.cz [127.0.0.1]) by wheatley.localdomain (Postfix) with ESMTP id 7C8AFB55DC77 for ; Mon, 02 Jun 2025 12:30:57 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1748860265; h=from:from: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; bh=J6TP4VS6c/aXxTv8bR4uKFP3NvUxet9dr8L38YpwS5k=; b=iQIFQPiicr+GdMkHi0ipJETwYYOtc/NazMbgu0kSDKk1GJvjB056CzZgvr8xhVPovcV9G9 b9VarFEG6RdRbbgmdY5iG71LNyYCkYHCmGfcrr59XQnU7q17Rm7j0o9Dth4UFBsRjfJuZV J1MbFQDTXHNeCxddlO12ud7vJq+w4jc= X-MC-Unique: _qP1irOWNMqbSErepSicAQ-1 X-Mimecast-MFC-AGG-ID: _qP1irOWNMqbSErepSicAQ_1748860263 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748860263; x=1749465063; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UUueeGYv3Tn7KI+ZIQfU/Nz0FmX3Y3XXTgWFqDPvuuo=; b=gRN5dIKQfFrQFXWe6qUXfvuPxOfS3b6TYkG2W9+/IYswKDTcQZGo/nFbHaWY8NFYMo FlPkpahOEWpPjksAEpMth3m9hhnx+l+vzJKZUMKh0h0zK3XQu55MJ24MCAY1P6ugutoK EgtaWt9eRwDkYX28kDsp697OddULAMjn2TEG4Angma+vukWkiThWUdVOIHNjJUSPLMne e8hJtFnOIk42S6lsQkbg6JdMQeWNROKXABqKpSAE9T2vm1kpW/qVzJOjTIv5uMPqfsvv FW5rBnDxQgFJIfVdPOIlGJY8E+a+h3pHFNozO3UuQmH4GLn7qcfBcZ+WIo1HHWhamVeI 812g== X-Gm-Message-State: AOJu0YyzRs7lFnSMytGOh0As9xGQuTPUGKQRvyxUTgZ2Ee7JQfvCRGHn t44QdkKJWeBKq5FiiAI/v8LRmIC5aFDC+oM2FxrJj8zo2wiJfo3u3uWy+f7nKOiIzDv2B5JCiYw Tk+UT31AlbZS7WCGjzbSXWyC3ZK5lHQNNR5PoqyoVFwaMF1aEZqaJ8XCkHmy63axooLlT8sbam4 OKL8hTP1C3L+XoQrt684drpT6MHcv4eycOBL8KARgM86g= X-Gm-Gg: ASbGncvdEUs0Zn/kflpKyLeLTDW9rRhSCTL+auasksZ9PKGJJvqtKmdGRgKwSV+5or6 OTz7zDMIYueyWoDlu0t1E2a/VavlwOv3cMLLcTfBiqXyMM1MHijlvBu/KXjnPvKuoFcENOuiPR4 JG6pBsAiIwN/EzQ1w9h/h6DsyXW+D1ZU+dTCqQ6ABr6Ey0absZoNm58ThXPKd5ANke7p+xNt9pI VcD1NG7bYlKuKn761vnsrmMynmwhivkNOBe1IAXhmrm/zecs267gZs0/Xb0tmRDgvPH5GZ1kEfz bzCXscm0zdjtQDH1w86n X-Received: by 2002:a05:6000:4023:b0:3a0:b1f7:c1da with SMTP id ffacd0b85a97d-3a4fe3989b2mr5550058f8f.46.1748860262408; Mon, 02 Jun 2025 03:31:02 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGRzAGrPDGm1asd1YmIZ7+Gquiaze5ZQndsBd8qcuimAmq/Gez0aOmlPEuwS100GyXwrLTLrg== X-Received: by 2002:a05:6000:4023:b0:3a0:b1f7:c1da with SMTP id ffacd0b85a97d-3a4fe3989b2mr5550009f8f.46.1748860261631; Mon, 02 Jun 2025 03:31:01 -0700 (PDT) To: devel@lists.libvirt.org Subject: [PATCH 05/11] vmx: Add support for NVMe disks Date: Mon, 2 Jun 2025 12:30:48 +0200 Message-ID: X-Mailer: git-send-email 2.49.0 In-Reply-To: References: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: sKtz14xc72QvseTnaCPvDEkww5kvcIrrJsErL2vctd4_1748860263 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: GTDVFXYSOBEN5SFTDZKS33234YXI37YF X-Message-ID-Hash: GTDVFXYSOBEN5SFTDZKS33234YXI37YF X-MailFrom: mkletzan@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Martin Kletzander via Devel Reply-To: Martin Kletzander X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1748860846035116600 Content-Type: text/plain; charset="utf-8"; x-default="true" From: Martin Kletzander Resolves: https://issues.redhat.com/browse/RHEL-7390 Signed-off-by: Martin Kletzander --- src/vmx/vmx.c | 84 ++++++++++++++++++- tests/vmx2xmldata/esx-in-the-wild-15.vmx | 100 +++++++++++++++++++++++ tests/vmx2xmldata/esx-in-the-wild-15.xml | 45 ++++++++++ tests/vmx2xmldata/esx-in-the-wild-16.vmx | 91 +++++++++++++++++++++ tests/vmx2xmldata/esx-in-the-wild-16.xml | 37 +++++++++ tests/vmx2xmltest.c | 2 + 6 files changed, 358 insertions(+), 1 deletion(-) create mode 100644 tests/vmx2xmldata/esx-in-the-wild-15.vmx create mode 100644 tests/vmx2xmldata/esx-in-the-wild-15.xml create mode 100644 tests/vmx2xmldata/esx-in-the-wild-16.vmx create mode 100644 tests/vmx2xmldata/esx-in-the-wild-16.xml diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 7fa00669a717..47eabe33c64e 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -97,6 +97,7 @@ def->os sata[0..3]:[0..29] -> = : with 1 bus per controller ide[0..1]:[0..1] -> :<= unit> with 1 controller floppy[0..1] -> = with 1 controller and 1 bus per controller + nvme[0..3]:[0..14] -> : with 1 bus per controller =20 def->disks[0]... =20 @@ -308,6 +309,19 @@ def->disks[0]... ->slotnum =20 =20 +## disks: nvme hard drive ################################################= ###### + + nvme[0...3].present =3D "true" = # defaults to "false" + nvme[0...3]:[0...14].present =3D "= true" # defaults to "false" +# Limits are taken from https://configmax.broadcom.com/guest?vmwareproduct= =3DvSphere&release=3DvSphere%208.0&categories=3D1-0 +... +->type =3D _DISK_TYPE_FILE +->device =3D _DISK_DEVICE_DISK +->bus =3D _DISK_BUS_NVME +->src =3D .vmdk <=3D> nvme0:0.fileName =3D ".= vmdk" +->dst =3D nvmen +->cachemode <=3D> nvme0:0.writeThrough =3D "" # defaults to false, true -> _DISK_CACHE_WRITETHRU, false _DISK_C= ACHE_DEFAULT + =20 ##########################################################################= ###### ## filesystems ###########################################################= ###### @@ -573,6 +587,7 @@ static int virVMXParseVNC(virConf *conf, virDomainGraph= icsDef **def); static int virVMXParseSCSIController(virConf *conf, int controller, bool *= present, int *virtualDev); static int virVMXParseSATAController(virConf *conf, int controller, bool *= present); +static int virVMXParseNVMEController(virConf *conf, int controller, bool *= present); static int virVMXParseDisk(virVMXContext *ctx, virDomainXMLOption *xmlopt, virConf *conf, int device, int busType, int controllerOrBus, int unit, virDomainDiskDef= **def, @@ -1843,6 +1858,30 @@ virVMXParseConfig(virVMXContext *ctx, VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk); } =20 + /* def:disks (nvme) */ + for (controller =3D 0; controller < 4; ++controller) { + if (virVMXParseNVMEController(conf, controller, &present) < 0) + goto cleanup; + + if (!present) + continue; + + for (unit =3D 0; unit < 15; unit++) { + g_autoptr(virDomainDiskDef) disk =3D NULL; + + if (virVMXParseDisk(ctx, xmlopt, conf, VIR_DOMAIN_DISK_DEVICE_= DISK, + VIR_DOMAIN_DISK_BUS_NVME, controller, unit, + &disk, def) < 0) { + goto cleanup; + } + + if (!disk) + continue; + + VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk); + } + } + /* def:fss */ if (virVMXGetConfigBoolean(conf, "isolation.tools.hgfs.disable", &hgfs_disabled, true, true) < 0) { @@ -2156,6 +2195,27 @@ virVMXParseSATAController(virConf *conf, int control= ler, bool *present) } =20 =20 +static int +virVMXParseNVMEController(virConf *conf, int controller, bool *present) +{ + char present_name[32]; + + if (controller < 0 || controller > 3) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("NVMe controller index %1$d out of [0..3] range"), + controller); + return -1; + } + + g_snprintf(present_name, sizeof(present_name), "nvme%d.present", contr= oller); + + if (virVMXGetConfigBoolean(conf, present_name, present, false, true) <= 0) + return -1; + + return 0; +} + + static int virVMXGenerateDiskTarget(virDomainDiskDef *def, virDomainDef *vmdef, @@ -2164,6 +2224,7 @@ virVMXGenerateDiskTarget(virDomainDiskDef *def, { const char *prefix =3D NULL; unsigned int idx =3D 0; + unsigned int nvme_ctrl =3D 0; =20 switch (def->bus) { case VIR_DOMAIN_DISK_BUS_SCSI: @@ -2241,6 +2302,25 @@ virVMXGenerateDiskTarget(virDomainDiskDef *def, break; =20 case VIR_DOMAIN_DISK_BUS_NVME: + if (controllerOrBus < 0 || controllerOrBus > 3) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("NVMe controller index %1$d out of [0..3] ran= ge"), + controllerOrBus); + return -1; + } + + if (unit < 0 || unit > 14) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("NVMe NSID %1$d out of [0..14] range"), + unit); + return -1; + } + + prefix =3D "nvme"; + nvme_ctrl =3D controllerOrBus; + idx =3D unit; + break; + case VIR_DOMAIN_DISK_BUS_VIRTIO: case VIR_DOMAIN_DISK_BUS_XEN: case VIR_DOMAIN_DISK_BUS_USB: @@ -2258,7 +2338,7 @@ virVMXGenerateDiskTarget(virDomainDiskDef *def, return -1; } =20 - def->dst =3D virIndexToDiskName(0, idx, prefix); + def->dst =3D virIndexToDiskName(nvme_ctrl, idx, prefix); return 0; } =20 @@ -2339,6 +2419,8 @@ virVMXParseDisk(virVMXContext *ctx, virDomainXMLOptio= n *xmlopt, virConf *conf, prefix =3D g_strdup_printf("sata%d:%d", controllerOrBus, unit); } else if (busType =3D=3D VIR_DOMAIN_DISK_BUS_IDE) { prefix =3D g_strdup_printf("ide%d:%d", controllerOrBus, unit); + } else if (busType =3D=3D VIR_DOMAIN_DISK_BUS_NVME) { + prefix =3D g_strdup_printf("nvme%d:%d", controllerOrBus, unit); } else { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported bus type '%1$s' for device type = '%2$s'"), diff --git a/tests/vmx2xmldata/esx-in-the-wild-15.vmx b/tests/vmx2xmldata/e= sx-in-the-wild-15.vmx new file mode 100644 index 000000000000..5a37e3c1a64a --- /dev/null +++ b/tests/vmx2xmldata/esx-in-the-wild-15.vmx @@ -0,0 +1,100 @@ +.encoding =3D "UTF-8" +config.version =3D "8" +virtualHW.version =3D "19" +vmci0.present =3D "TRUE" +floppy0.present =3D "FALSE" +numvcpus =3D "2" +memSize =3D "2048" +tools.upgrade.policy =3D "manual" +sched.cpu.units =3D "mhz" +vm.createDate =3D "1576746358597648" +nvme0.present =3D "TRUE" +ide0:0.startConnected =3D "FALSE" +ide0:0.deviceType =3D "atapi-cdrom" +ide0:0.fileName =3D "/vmfs/devices/cdrom/mpx.vmhba0:C0:T0:L0" +ide0:0.present =3D "TRUE" +nvme0:0.fileName =3D "dokuwiki.vmdk" +sched.nvme0:0.shares =3D "normal" +sched.nvme0:0.throughputCap =3D "off" +nvme0:0.present =3D "TRUE" +nvme0:1.fileName =3D "dokuwiki_1.vmdk" +sched.nvme0:1.shares =3D "normal" +sched.nvme0:1.throughputCap =3D "off" +nvme0:1.present =3D "TRUE" +ethernet0.virtualDev =3D "vmxnet3" +ethernet0.networkName =3D "inside" +ethernet0.addressType =3D "vpx" +ethernet0.generatedAddress =3D "00:50:56:83:c9:0c" +ethernet0.uptCompatibility =3D "TRUE" +ethernet0.present =3D "TRUE" +displayName =3D "dokuwiki" +guestOS =3D "debian11-64" +toolScripts.afterPowerOn =3D "TRUE" +toolScripts.afterResume =3D "TRUE" +toolScripts.beforeSuspend =3D "TRUE" +toolScripts.beforePowerOff =3D "TRUE" +tools.syncTime =3D "FALSE" +uuid.bios =3D "42 03 38 bd 1c 9e ad 50-99 a2 59 e9 2d dd a8 b6" +vc.uuid =3D "50 03 41 d5 fe 23 ac 46-8c b3 77 a8 e5 a1 14 3d" +tools.guest.desktop.autolock =3D "FALSE" +nvram =3D "dokuwiki.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" +hpet0.present =3D "TRUE" +sched.cpu.latencySensitivity =3D "normal" +svga.autodetect =3D "TRUE" +ethernet0.pciSlotNumber =3D "192" +monitor.phys_bits_used =3D "45" +numa.autosize.cookie =3D "20012" +numa.autosize.vcpu.maxPerVirtualNode =3D "2" +pciBridge0.pciSlotNumber =3D "17" +pciBridge4.pciSlotNumber =3D "21" +pciBridge5.pciSlotNumber =3D "22" +pciBridge6.pciSlotNumber =3D "23" +pciBridge7.pciSlotNumber =3D "24" +softPowerOff =3D "FALSE" +vmci0.pciSlotNumber =3D "32" +vmotion.checkpointFBSize =3D "4194304" +vmotion.checkpointSVGAPrimarySize =3D "16777216" +svga.guestBackedPrimaryAware =3D "TRUE" +viv.moid =3D "b06e4d96-3801-44bc-a80b-000c9d5011de:vm-4132:xfcr8Wfnh0NDebe= 8d4RfGMCmMZwHgM/hdwwwZBOfda0=3D" +toolsInstallManager.updateCounter =3D "5" +guestInfo.detailed.data =3D "architecture=3D'X86' bitness=3D'64' distroAdd= lVersion=3D'12 (bookworm)' distroName=3D'Debian GNU/Linux' distroVersion=3D= '12' familyName=3D'Linux' kernelVersion=3D'6.1.0-31-amd64' prettyName=3D'De= bian GNU/Linux 12 (bookworm)'" +nvme0.pciSlotNumber =3D "224" +vmotion.svga.mobMaxSize =3D "16777216" +vmotion.svga.graphicsMemoryKB =3D "16384" +nvme0.subnqnUUID =3D "52 1c 76 62 33 0a 35 92-ec d2 e8 fb b6 1e 48 40" +migrate.hostLog =3D "dokuwiki-4798ad89.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" +ftcpt.ftEncryptionMode =3D "ftEncryptionOpportunistic" +guestinfo.vmtools.buildNumber =3D "21223074" +guestinfo.vmtools.description =3D "open-vm-tools 12.2.0 build 21223074" +guestinfo.vmtools.versionNumber =3D "12352" +guestinfo.vmtools.versionString =3D "12.2.0" +guestinfo.vmware.components.available =3D "none" +sched.swap.derivedName =3D "/vmfs/volumes/730da1ed-8e83d87a-0000-000000000= 000/dokuwiki/dokuwiki-dc0a874b.vswp" +uuid.location =3D "56 4d 1b 77 e4 d9 3e 43-31 31 2a 9b d2 d5 b1 18" +nvme0:0.redo =3D "" +nvme0:1.redo =3D "" +svga.vramSize =3D "16777216" +vmci0.id =3D "769501366" +cleanShutdown =3D "FALSE" +config.readOnly =3D "FALSE" +guestinfo.appInfo =3D "{|0A|22version|22:|221|22, |0A|22updateCounter|22:|= 224|22, |0A|22publishTime|22:|222025-03-07T05:47:53.504Z|22, |0A|22applicat= ions|22:[|0A{|22a|22:|22kworker/1:2-ata_sff|22,|22v|22:|22|22},|0A{|22a|22:= |22kworker/1:0-ata_sff|22,|22v|22:|22|22},|0A{|22a|22:|22kworker/0:1|22,|22= v|22:|22|22},|0A{|22a|22:|22kworker/1:1-events|22,|22v|22:|22|22},|0A{|22a|= 22:|22kworker/u4:2-events_unbound|22,|22v|22:|22|22},|0A{|22a|22:|22apache2= |22,|22v|22:|22|22},|0A{|22a|22:|22kworker/0:3-events|22,|22v|22:|22|22},|0= A{|22a|22:|22kworker/u4:0-events_unbound|22,|22v|22:|22|22},|0A{|22a|22:|22= exim4|22,|22v|22:|22|22},|0A{|22a|22:|22sshd: /usr/sbin/sshd -D [listener] = 0 of 10-100 startups|22,|22v|22:|22|22},|0A{|22a|22:|22agetty|22,|22v|22:|2= 2|22},|0A{|22a|22:|22cron|22,|22v|22:|22|22},|0A{|22a|22:|22systemd-logind|= 22,|22v|22:|22|22},|0A{|22a|22:|22rsyslogd|22,|22v|22:|22|22},|0A{|22a|22:|= 22dbus-daemon|22,|22v|22:|22|22},|0A{|22a|22:|22acpid|22,|22v|22:|22|22},|0= A{|22a|22:|22xprtiod|22,|22v|22:|22|22},|0A{|22a|22:|22rpciod|22,|22v|22:|2= 2|22},|0A{|22a|22:|22vmtoolsd|22,|22v|22:|22|22},|0A{|22a|22:|22VGAuthServi= ce|22,|22v|22:|22|22},|0A{|22a|22:|22systemd-timesyncd|22,|22v|22:|22|22},|= 0A{|22a|22:|22rpcbind|22,|22v|22:|22|22},|0A{|22a|22:|22irq/16-vmwgfx|22,|2= 2v|22:|22|22},|0A{|22a|22:|22irq/63-vmw_vmci|22,|22v|22:|22|22},|0A{|22a|22= :|22irq/62-vmw_vmci|22,|22v|22:|22|22},|0A{|22a|22:|22systemd-udevd|22,|22v= |22:|22|22},|0A{|22a|22:|22systemd-journald|22,|22v|22:|22|22},|0A{|22a|22:= |22ext4-rsv-conver|22,|22v|22:|22|22},|0A{|22a|22:|22jbd2/nvme0n1p1-8|22,|2= 2v|22:|22|22},|0A{|22a|22:|22kworker/1:2H-kblockd|22,|22v|22:|22|22},|0A{|2= 2a|22:|22nvme-delete-wq|22,|22v|22:|22|22},|0A{|22a|22:|22nvme-reset-wq|22,= |22v|22:|22|22},|0A{|22a|22:|22nvme-wq|22,|22v|22:|22|22},|0A{|22a|22:|22sc= si_tmf_1|22,|22v|22:|22|22},|0A{|22a|22:|22scsi_eh_1|22,|22v|22:|22|22},|0A= {|22a|22:|22scsi_tmf_0|22,|22v|22:|22|22},|0A{|22a|22:|22scsi_eh_0|22,|22v|= 22:|22|22},|0A{|22a|22:|22ata_sff|22,|22v|22:|22|22},|0A{|22a|22:|22kworker= /0:1H-kblockd|22,|22v|22:|22|22},|0A{|22a|22:|22kworker/u5:0|22,|22v|22:|22= |22},|0A{|22a|22:|22zswap-shrink|22,|22v|22:|22|22},|0A{|22a|22:|22kstrp|22= ,|22v|22:|22|22},|0A{|22a|22:|22ipv6_addrconf|22,|22v|22:|22|22},|0A{|22a|2= 2:|22mld|22,|22v|22:|22|22},|0A{|22a|22:|22acpi_thermal_pm|22,|22v|22:|22|2= 2},|0A{|22a|22:|22irq/55-pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq/54-pc= iehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq/53-pciehp|22,|22v|22:|22|22},|0A= {|22a|22:|22irq/52-pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq/51-pciehp|2= 2,|22v|22:|22|22},|0A{|22a|22:|22irq/50-pciehp|22,|22v|22:|22|22},|0A{|22a|= 22:|22irq/49-pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq/48-pciehp|22,|22v= |22:|22|22},|0A{|22a|22:|22irq/47-pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22= irq/46-pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq/45-pciehp|22,|22v|22:|2= 2|22},|0A{|22a|22:|22irq/44-pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq/43= -pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq/42-pciehp|22,|22v|22:|22|22},= |0A{|22a|22:|22irq/41-pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq/40-pcieh= p|22,|22v|22:|22|22},|0A{|22a|22:|22irq/39-pciehp|22,|22v|22:|22|22},|0A{|2= 2a|22:|22irq/38-pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq/37-pciehp|22,|= 22v|22:|22|22},|0A{|22a|22:|22irq/36-pciehp|22,|22v|22:|22|22},|0A{|22a|22:= |22irq/35-pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq/34-pciehp|22,|22v|22= :|22|22},|0A{|22a|22:|22irq/33-pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq= /32-pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq/31-pciehp|22,|22v|22:|22|2= 2},|0A{|22a|22:|22irq/30-pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq/29-pc= iehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq/28-pciehp|22,|22v|22:|22|22},|0A= {|22a|22:|22irq/27-pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22irq/26-pciehp|2= 2,|22v|22:|22|22},|0A{|22a|22:|22irq/25-pciehp|22,|22v|22:|22|22},|0A{|22a|= 22:|22irq/24-pciehp|22,|22v|22:|22|22},|0A{|22a|22:|22kthrotld|22,|22v|22:|= 22|22},|0A{|22a|22:|22kswapd0|22,|22v|22:|22|22},|0A{|22a|22:|22kworker/1:1= H-kblockd|22,|22v|22:|22|22},|0A{|22a|22:|22devfreq_wq|22,|22v|22:|22|22},|= 0A{|22a|22:|22edac-poller|22,|22v|22:|22|22},|0A{|22a|22:|22tpm_dev_wq|22,|= 22v|22:|22|22},|0A{|22a|22:|22blkcg_punt_bio|22,|22v|22:|22|22},|0A{|22a|22= :|22kblockd|22,|22v|22:|22|22},|0A{|22a|22:|22kintegrityd|22,|22v|22:|22|22= },|0A{|22a|22:|22khugepaged|22,|22v|22:|22|22},|0A{|22a|22:|22ksmd|22,|22v|= 22:|22|22},|0A{|22a|22:|22kcompactd0|22,|22v|22:|22|22},|0A{|22a|22:|22writ= eback|22,|22v|22:|22|22},|0A{|22a|22:|22oom_reaper|22,|22v|22:|22|22},|0A{|= 22a|22:|22khungtaskd|22,|22v|22:|22|22},|0A{|22a|22:|22kauditd|22,|22v|22:|= 22|22},|0A{|22a|22:|22inet_frag_wq|22,|22v|22:|22|22},|0A{|22a|22:|22kdevtm= pfs|22,|22v|22:|22|22},|0A{|22a|22:|22ksoftirqd/1|22,|22v|22:|22|22},|0A{|2= 2a|22:|22migration/1|22,|22v|22:|22|22},|0A{|22a|22:|22cpuhp/1|22,|22v|22:|= 22|22},|0A{|22a|22:|22cpuhp/0|22,|22v|22:|22|22},|0A{|22a|22:|22migration/0= |22,|22v|22:|22|22},|0A{|22a|22:|22rcu_preempt|22,|22v|22:|22|22},|0A{|22a|= 22:|22ksoftirqd/0|22,|22v|22:|22|22},|0A{|22a|22:|22rcu_tasks_trace_kthread= |22,|22v|22:|22|22},|0A{|22a|22:|22rcu_tasks_rude_kthread|22,|22v|22:|22|22= },|0A{|22a|22:|22rcu_tasks_kthread|22,|22v|22:|22|22},|0A{|22a|22:|22mm_per= cpu_wq|22,|22v|22:|22|22},|0A{|22a|22:|22kworker/0:0H-events_highpri|22,|22= v|22:|22|22},|0A{|22a|22:|22netns|22,|22v|22:|22|22},|0A{|22a|22:|22slub_fl= ushwq|22,|22v|22:|22|22},|0A{|22a|22:|22rcu_par_gp|22,|22v|22:|22|22},|0A{|= 22a|22:|22rcu_gp|22,|22v|22:|22|22},|0A{|22a|22:|22kthreadd|22,|22v|22:|22|= 22},|0A{|22a|22:|22init|22,|22v|22:|22|22}]}" diff --git a/tests/vmx2xmldata/esx-in-the-wild-15.xml b/tests/vmx2xmldata/e= sx-in-the-wild-15.xml new file mode 100644 index 000000000000..77b094e9d5b5 --- /dev/null +++ b/tests/vmx2xmldata/esx-in-the-wild-15.xml @@ -0,0 +1,45 @@ + + dokuwiki + 420338bd-1c9e-ad50-99a2-59e92ddda8b6 + 2097152 + 2097152 + 2 + + 2000 + + + hvm + + + destroy + restart + destroy + + + + + +
+ + + + +
+ + + + +
+ + + + + + + + + + + diff --git a/tests/vmx2xmldata/esx-in-the-wild-16.vmx b/tests/vmx2xmldata/e= sx-in-the-wild-16.vmx new file mode 100644 index 000000000000..ffbb64c30357 --- /dev/null +++ b/tests/vmx2xmldata/esx-in-the-wild-16.vmx @@ -0,0 +1,91 @@ +.encoding =3D "UTF-8" +config.version =3D "8" +virtualHW.version =3D "20" +nvram =3D "Auto-esx8.0-rhel9.4-efi-nvme-disk.nvram" +svga.present =3D "TRUE" +vmci0.present =3D "TRUE" +hpet0.present =3D "TRUE" +floppy0.present =3D "FALSE" +svga.vramSize =3D "8388608" +RemoteDisplay.maxConnections =3D "-1" +memSize =3D "2048" +firmware =3D "efi" +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" +sched.cpu.latencySensitivity =3D "normal" +vm.createDate =3D "1714291828619860" +scsi0.virtualDev =3D "pvscsi" +scsi0.present =3D "TRUE" +sata0.present =3D "TRUE" +sata0:0.deviceType =3D "atapi-cdrom" +sata0:0.fileName =3D "emptyBackingString" +sata0:0.present =3D "TRUE" +ethernet0.allowGuestConnectionControl =3D "FALSE" +ethernet0.virtualDev =3D "vmxnet3" +ethernet0.networkName =3D "VM Network" +ethernet0.addressType =3D "vpx" +ethernet0.generatedAddress =3D "00:50:56:a0:a6:7e" +ethernet0.uptCompatibility =3D "TRUE" +ethernet0.present =3D "TRUE" +displayName =3D "Auto-esx8.0-rhel9.4-efi-nvme-disk" +guestOS =3D "rhel9-64" +chipset.motherboardLayout =3D "acpi" +uefi.secureBoot.enabled =3D "TRUE" +toolScripts.afterPowerOn =3D "TRUE" +toolScripts.afterResume =3D "TRUE" +toolScripts.beforeSuspend =3D "TRUE" +toolScripts.beforePowerOff =3D "TRUE" +uuid.bios =3D "42 20 df 89 e3 a8 85 13-f6 11 ad 25 2b fd 70 47" +vc.uuid =3D "50 20 19 6e c5 c8 73 10-fc db d2 93 3d 0c 4b 2f" +migrate.hostLog =3D "Auto-esx8.0-rhel9.4-efi-nvme-disk-2f773b32.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" +ftcpt.ftEncryptionMode =3D "ftEncryptionOpportunistic" +viv.moid =3D "e00e5864-a7ed-4b49-b99a-71da911f679c:vm-1153:hT+j9eNfGClvAYY= IPwnfo375t/28bM62O4s/axWXFiQ=3D" +nvme0.present =3D "TRUE" +nvme0:0.fileName =3D "Auto-esx8.0-rhel9.4-efi-nvme-disk.vmdk" +nvme0:0.present =3D "TRUE" +sched.nvme0:0.shares =3D "normal" +sched.nvme0:0.throughputCap =3D "off" +vmxstats.filename =3D "Auto-esx8.0-rhel9.4-efi-nvme-disk.scoreboard" +numa.autosize.cookie =3D "10012" +numa.autosize.vcpu.maxPerVirtualNode =3D "1" +cpuid.coresPerSocket.cookie =3D "1" +sched.swap.derivedName =3D "/vmfs/volumes/c97af7e9-686a74ad/Auto-esx8.0-rh= el9.4-efi-nvme-disk/Auto-esx8.0-rhel9.4-efi-nvme-disk-c0e0a2b4.vswp" +uuid.location =3D "56 4d 50 90 75 ac 76 f0-75 bb f2 3b ae e2 71 2f" +pciBridge1.present =3D "TRUE" +pciBridge1.virtualDev =3D "pciRootBridge" +pciBridge1.functions =3D "1" +pciBridge1:0.pxm =3D "0" +pciBridge0.present =3D "TRUE" +pciBridge0.virtualDev =3D "pciRootBridge" +pciBridge0.functions =3D "1" +pciBridge0.pxm =3D "-1" +scsi0.pciSlotNumber =3D "32" +ethernet0.pciSlotNumber =3D "33" +sata0.pciSlotNumber =3D "34" +nvme0.pciSlotNumber =3D "35" +nvme0:0.redo =3D "" +scsi0.sasWWID =3D "50 05 05 69 e3 a8 85 10" +vmotion.checkpointFBSize =3D "8388608" +vmotion.checkpointSVGAPrimarySize =3D "8388608" +vmotion.svga.mobMaxSize =3D "8388608" +vmotion.svga.graphicsMemoryKB =3D "8192" +vmci0.id =3D "738029639" +nvme0.subnqnUUID =3D "52 1c e6 f0 b2 e7 62 ee-8e 17 e3 79 14 52 b2 91" +monitor.phys_bits_used =3D "45" +cleanShutdown =3D "TRUE" +softPowerOff =3D "TRUE" +svga.guestBackedPrimaryAware =3D "TRUE" +tools.syncTime =3D "FALSE" +guestInfo.detailed.data =3D "architecture=3D'X86' bitness=3D'64' cpeString= =3D'cpe:/o:redhat:enterprise_linux:9::baseos' distroAddlVersion=3D'9.4 (Plo= w)' distroName=3D'Red Hat Enterprise Linux' distroVersion=3D'9.4' familyNam= e=3D'Linux' kernelVersion=3D'5.14.0-383.el9.x86_64' prettyName=3D'Red Hat E= nterprise Linux 9.4 Beta (Plow)'" +sata0:0.startConnected =3D "FALSE" +sata0:0.clientDevice =3D "TRUE" diff --git a/tests/vmx2xmldata/esx-in-the-wild-16.xml b/tests/vmx2xmldata/e= sx-in-the-wild-16.xml new file mode 100644 index 000000000000..147bc0825a09 --- /dev/null +++ b/tests/vmx2xmldata/esx-in-the-wild-16.xml @@ -0,0 +1,37 @@ + + Auto-esx8.0-rhel9.4-efi-nvme-disk + 4220df89-e3a8-8513-f611-ad252bfd7047 + 2097152 + 2097152 + 1 + + 1000 + + + hvm + + + + + + + destroy + restart + destroy + + + + +
+ + + + + + + + + + diff --git a/tests/vmx2xmltest.c b/tests/vmx2xmltest.c index 3ca954100085..bcd95ed87dcc 100644 --- a/tests/vmx2xmltest.c +++ b/tests/vmx2xmltest.c @@ -265,6 +265,8 @@ mymain(void) DO_TEST("esx-in-the-wild-12"); DO_TEST("esx-in-the-wild-13"); DO_TEST("esx-in-the-wild-14"); + DO_TEST("esx-in-the-wild-15"); + DO_TEST("esx-in-the-wild-16"); =20 DO_TEST("gsx-in-the-wild-1"); DO_TEST("gsx-in-the-wild-2"); --=20 2.49.0