On 6/2/20 9:58 PM, Laine Stump wrote:
On 5/28/20 1:09 PM, Jim Fehlig wrote:
Similar to commit 6c17606b7cc, normalize the MAC addresses in persistent
and live device config to avoid a different MAC address for the device
once the VM is rebooted and persistent config takes affect.
Well...
This has a bigger change than commit 6c17606b7cc! :-)
For those who don't feel like digging back through the git blame history, commit
6c17606b7cc just added a call to qemuDomainAttachDeviceLiveAndConfigHomogenize()
in the QEMU driver version of AttachDeviceFlags() to make the MAC addresses of
the *already-existing* "live" and "config" copies of the device object match
each other - qemu's function had previously been changed back in commit 55ce6564
to create separate copies of the device object for config and live (although it
still had to save an extra pointer to the config copy, which was being consumed
by the the qemuDomainAttachDeviceConfig(), with the pointer NULLed
The libxl driver hadn't gotten that change though, so up until now it's only had
a single device object pointer, and although it separately parsed the XML for
live and config, this was done sequentially into the same object, so the two
never existed at the same time. Since both objects must exist at the same time
to copy anything from one to the other (without "extra steps"), this new patch
is effectively the libxl equivalent of commit 55ce6564 and commit 6c17606b7cc
put together.
That was a long prelude to "maybe mention commit 55ce6564 in the commit log as
well" :-)
Agreed, I'll add it. Thanks for the details.
Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx>
---
src/libxl/libxl_driver.c | 56 +++++++++++++++++++++++++++++++++-------
1 file changed, 46 insertions(+), 10 deletions(-)
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 63ec0a2188..a80bc3fe3a 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -4096,6 +4096,31 @@ libxlDomainUpdateDeviceConfig(virDomainDefPtr vmdef,
virDomainDeviceDefPtr dev)
}
+static void
+libxlDomainAttachDeviceNormalize(const virDomainDeviceDef *devConf,
What? You didn't like my verb in the QEMU version? :-)
It made me think of milk :-).
(I can't remember why I picked Homogenize instead of Normalize, but I must have
had some reason. Maybe I was just thinking back to the dairy farm next door to
my childhood home (true story!))
Haha, that explains it! I think I would have preferred a dairy farm over the
steel mills and refineries of my childhood :-).
At any rate, it all looks good
Reviewed-by: Laine Stump <laine@xxxxxxxxxx>
Thanks for the review!
Regards,
Jim