On 11/12/20 11:03 AM, Olaf Hering wrote:
Since Xen 4.2 libxl expects device_model_override="/path" instead of
device_model="/path".

This has been on my todo list but never got the priority it deserved. Thanks for taking it on. Without your patch, using 'xl create' on xl.cfg converted from domXML by the libxl driver results in

WARNING: ignoring device_model directive.
WARNING: Use "device_model_override" instead if you really want a non-default device_model

Adjust the code to parse this as <emulator>.

You also have to adjust all the failing {xl,xm}configtests.

While libxl also recognizes device_model_version="", this knob is not
supported by libvirt. A runtime detection exists to select either
"qemu-xen" or "qemu-xen-traditional".

Correct. It is selected based on the specified <emulator> and not modeled in domXML. Does it need to be exposed to the user? AFAIK those are the only two values we care about, and it is possible to determine which to use based on the <emulator>.

Regards,
Jim


Signed-off-by: Olaf Hering <[email protected]>
---
  src/libxl/xen_common.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/libxl/xen_common.c b/src/libxl/xen_common.c
index c82e487d80..88a784ed04 100644
--- a/src/libxl/xen_common.c
+++ b/src/libxl/xen_common.c
@@ -1508,7 +1508,7 @@ xenParseConfigCommon(virConfPtr conf,
      if (xenParseTimeOffset(conf, def) < 0)
          return -1;
- if (xenConfigCopyStringOpt(conf, "device_model", &def->emulator) < 0)
+    if (xenConfigCopyStringOpt(conf, "device_model_override", &def->emulator) 
< 0)
          return -1;
if (STREQ(nativeFormat, XEN_CONFIG_FORMAT_XL)) {
@@ -2242,7 +2242,7 @@ static int
  xenFormatEmulator(virConfPtr conf, virDomainDefPtr def)
  {
      if (def->emulator &&
-        xenConfigSetString(conf, "device_model", def->emulator) < 0)
+        xenConfigSetString(conf, "device_model_override", def->emulator) < 0)
          return -1;
return 0;


Reply via email to