Bug 1310458

Summary: Ovirt 3.6 uses hotplug memory independant of machine type
Product: [oVirt] ovirt-engine Reporter: Markus Stockhausen <mst>
Component: Backend.CoreAssignee: Nobody <nobody>
Status: CLOSED NEXTRELEASE QA Contact: meital avital <mavital>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 3.6.2CC: bugs, michal.skrivanek, mst
Target Milestone: ---Flags: rule-engine: planning_ack?
rule-engine: devel_ack?
rule-engine: testing_ack?
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-03-23 12:27:59 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Virt RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Markus Stockhausen 2016-02-21 19:50:56 UTC
Description of problem:

Ovirt must not use hotplug memory for older machine types. Otherwise startup will fail with messages like qemu-kvm: "-memory 'slots|maxmem'" is not supported by: pc-1.0

Version-Release number of selected component (if applicable):

Ovirt 3.6.2

How reproducible:

100%

Steps to Reproduce:
1. use ovirt 3.6 with cluster level 3.6
2. define VM and use older machine type e.g. rhel6.5.0 or pc-1.0
3. try to start vm

Actual results:

qemu fails to start.

Expected results:

qemu should start.

Additional info:

Bad XML for libvirt
<?xml ...>
        <name>colvm370</name>
        <uuid>023c978c-63b0-4960-958b-33455b7886c1</uuid>
        <memory>2097152</memory>
        <currentMemory>2097152</currentMemory>
        <maxMemory slots="16">4294967296</maxMemory> <--- DOES NOT WORK
        <vcpu current="2">32</vcpu>
...
        <os>
                <type arch="x86_64" machine="pc-1.0">hvm</type>
                <smbios mode="sysinfo"/>
        </os>

Comment 1 Markus Stockhausen 2016-02-21 20:12:56 UTC
Explanation of use case: 

http://lists.ovirt.org/pipermail/users/2016-February/038069.html

Comment 2 Michal Skrivanek 2016-02-22 05:59:07 UTC
Not all the combinations of old machine type and a current cluster level make sense. Hotplug is a cluster level feature, enabled in 3.6. It does not "check" the machine type

If you don't want to have hotplug enabled you either disable it globally for 3.6 cluster level or use 3.5 compatibility level for a particular VM

Comment 3 Markus Stockhausen 2016-02-22 06:24:17 UTC
Thanks for pointing that out. I was searching for such an option but did not find anything in WebUI. Maybe I'm missing something but

- how/where can I disable memory hotplug for a 3.6 cluster?

- or how/where can I enforce 3.5 compatibility for a single VM in a 3.6 cluster?

Comment 4 Michal Skrivanek 2016-02-22 06:39:15 UTC
(In reply to Markus Stockhausen from comment #3)
> Thanks for pointing that out. I was searching for such an option but did not
> find anything in WebUI. Maybe I'm missing something but
> 
> - how/where can I disable memory hotplug for a 3.6 cluster?

Via engine-config HotPlugMemorySupported parameter

> - or how/where can I enforce 3.5 compatibility for a single VM in a 3.6
> cluster?

This will only be possible in 4.0. You need to use a 3.5 cluster for now, and even in 4.0 there will likely be some exceptions

To your email - machine type describes all the "hw" of the virtual machine, related features, and also what is being tested. If the one from 3.6 doesn't work for you for any reason you have to keep at the older cluster level. Cluster defines the behavior for many features. In 3.6 hotplug ram is the only one which fails right away when using old machine, but it won't work reliably anyway even when you disable it. YMMV

Comment 5 Michal Skrivanek 2016-03-23 12:27:59 UTC
let's see how it behaves in 4.0