From: "Richard W.M. Jones" <rjones@redhat.com>
To: Michal Privoznik <mprivozn@redhat.com>
Cc: libvir-list@redhat.com, qemu-devel@nongnu.org
Subject: Re: [PATCH 0/1] vmx: Fix <genid/> mapping
Date: Wed, 29 Sep 2021 10:20:44 +0100 [thread overview]
Message-ID: <20210929092044.GE3361@redhat.com> (raw)
In-Reply-To: <cover.1632900578.git.mprivozn@redhat.com>
On Wed, Sep 29, 2021 at 10:01:55AM +0200, Michal Privoznik wrote:
> Apparently, parsing vmx.genid is not as easy as I thought. Anyway, it
> was brought up in a private thread that libvirt doesn't report correct
> UUIDs. For instance for the following input:
>
> vm.genid = "-8536691797830587195"
> vm.genidX = "-1723453263670062919"
(The two lines above come from a VMware .vmx file)
The only thing that really matters is what the guest sees. I ran
VMGENID.EXE (https://bugzilla.redhat.com/show_bug.cgi?id=1598350#c3
https://docs.microsoft.com/en-gb/windows/win32/hyperv_v2/virtual-machine-generation-identifier)
inside the guest and it showed:
8987940a09512cc5:e81510634ff550b9
Note these numbers are the hex equivalents of the VMware .vmx numbers:
>>> print("%x" % (2**64-8536691797830587195))
8987940a09512cc5
>>> print("%x" % (2**64-1723453263670062919))
e81510634ff550b9
> Libvirt would report:
>
> <genid>8987940a-0951-2cc5-e815-10634ff550b9</genid>
>
> while virt-v2v would report:
>
> <genid>09512cc5-940a-8987-b950-f54f631015e8</genid>
After thinking about this a bit more, IMHO the real problem is
with qemu. If you pass this to qemu:
-device vmgenid,guid=8987940a-0951-2cc5-e815-10634ff550b9,id=vmgenid0
then inside the guest VMGENID shows 2cc509518987940a:b950f54f631015e8 (wrong)
If you pass this to qemu:
...guid=09512cc5-940a-8987-b950-f54f631015e8...
then inside the guest it sees 8987940a09512cc5:e81510634ff550b9
(the correct values, matching VMware).
This is the reason why virt-v2v mangles the GUID, in order to trick
libvirt into passing a mangled GUID which gets mangled again by qemu
which is the same as unmangling it.
So another way to fix this could be for us to fix qemu. We could just
pass the two numbers to qemu instead of using GUIDs, eg:
-device vmgenid,low=0x8987940a09512cc5,high=0xe81510634ff550b9,id=vmgenid0
and then we'd fix the implementation in qemu so that the low/high
values match what is seen by VMGENID.EXE in the guest.
Or we could have libvirt use the current GUID in <genid> but to do the
mangling when it gets passed through to qemu (instead of virt-v2v
doing the mangling).
Adding qemu-devel because I'm interesting to see if the qemu
developers would prefer to fix this properly in qemu.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html
next parent reply other threads:[~2021-09-29 9:22 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1632900578.git.mprivozn@redhat.com>
2021-09-29 9:20 ` Richard W.M. Jones [this message]
2021-09-29 9:33 ` [PATCH 0/1] vmx: Fix <genid/> mapping Daniel P. Berrangé
2021-09-29 9:46 ` Richard W.M. Jones
2021-09-29 10:07 ` Daniel P. Berrangé
2021-09-29 10:24 ` Richard W.M. Jones
2021-09-29 10:24 ` Richard W.M. Jones
2021-09-29 9:57 ` Richard W.M. Jones
2021-09-29 10:10 ` Daniel P. Berrangé
2021-09-29 10:34 ` Richard W.M. Jones
2021-09-30 7:33 ` Richard W.M. Jones
2021-09-30 8:35 ` Laszlo Ersek
2021-09-30 8:47 ` Daniel P. Berrangé
2021-09-30 9:16 ` Richard W.M. Jones
2021-10-04 9:59 ` Richard W.M. Jones
2021-10-04 14:50 ` Laszlo Ersek
2021-10-04 14:59 ` Richard W.M. Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210929092044.GE3361@redhat.com \
--to=rjones@redhat.com \
--cc=libvir-list@redhat.com \
--cc=mprivozn@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).