[Starlingx-discuss] WG: cpu mode

Chris Friesen chris.friesen at windriver.com
Mon Jan 21 19:10:26 UTC 2019


I think you'd need to edit the code on both controllers to add "EPYC" 
and "EPYC-IBPB" (with a "Y" instead of an "I") to the list in 
objects/fields.py such that it comes immediately after the "Passthrough" 
item.  It should look something like this:

class CPUModel(BaseNovaEnum):
     # We use the ordering of the cpu models to determine whether a
     # given host can emulate a specified virtual model, so it's not
     # just an enum.
     ALL = ("Passthrough",
            "EPYC",
            "EPYC-IBPB",
            "Conroe",
            "Penryn",

You'd then need to restart the nova-scheduler service on the active 
controller as per the instructions below.

Chris

On 1/21/2019 10:45 AM, von Hoesslin, Volker wrote:
> i have tried to extend this code:
> 
> File: /usr/lib/python2.7/site-packages/nova/objects/fields.py
> Class: class CPUModel(BaseNovaEnum):
> 
> and add this two elements to list:
> 
>             "EPIC",
>             "EPIC-IBPB"
> 
> restart the controller, but the same error:
> 
>   (VCpuModelFilter) Host VCPU model EPYC-IBPB required Passthrough
> 
> i'm not sure, is this code used or have to recompile some stuff?
> 
> volker...
> 
> ________________________________________
> Von: von Hoesslin, Volker [Volker.Hoesslin at swsn.de]
> Gesendet: Montag, 21. Januar 2019 17:07
> An: Chris Friesen; starlingx-discuss at lists.starlingx.io
> Betreff: Re: [Starlingx-discuss] WG: cpu mode
> 
> kk, it seems it is the right way, but now i get this error here:
> 
> No valid host was found. There are not enough hosts available. compute-0: (VCpuModelFilter) Host VCPU model EPYC-IBPB required Passthrough, compute-1: (VCpuModelFilter) Host VCPU model EPYC-IBPB required Passthrough
> 
> volker...
> ________________________________________
> Von: Chris Friesen [chris.friesen at windriver.com]
> Gesendet: Montag, 21. Januar 2019 16:28
> An: von Hoesslin, Volker; starlingx-discuss at lists.starlingx.io
> Betreff: Re: AW: [Starlingx-discuss] WG: cpu mode
> 
> This is another assumption about Intel CPUs.  I *think* the following
> should work:
> 
> On the controllers, edit
> /usr/lib/python2.7/site-packages/nova/scheduler/filters/vcpu_model_filter.py
> (if that's not the path it should be something pretty close).  In the
> "_is_host_kvm" function add the following before the "return False" line:
> 
>       if 'svm' in info['features']:
>           return True
> 
> Then, on the active controller node run "sudo sm-restart service
> nova-scheduler".  This should restart the nova scheduler, and at this
> point you should be able to schedule an instance.
> 
> Chris
> 
> 
> On 1/21/2019 9:16 AM, von Hoesslin, Volker wrote:
>> this would be very nice, but if i try to launch a vm with a flavor that contain the given extra-spec, i get this error:
>>
>> No valid host was found. There are not enough hosts available. compute-0: (VCpuModelFilter) Passthrough VCPU Model only available on 'kvm' hosts, compute-1: (VCpuModelFilter) Passthrough VCPU Model only available on 'kvm' hosts
>>
>> volker...
>> ________________________________________
>> Von: Chris Friesen [chris.friesen at windriver.com]
>> Gesendet: Montag, 21. Januar 2019 16:09
>> An: starlingx-discuss at lists.starlingx.io
>> Betreff: Re: [Starlingx-discuss] WG: cpu mode
>>
>> You shouldn't need to modify nova.conf.
>>
>> With the current codebase you should be able to specify
>> "hw:cpu_model=Passthrough" in the flavor extra-specs.
>>
>> Chris
>>
>> On 1/21/2019 8:30 AM, von Hoesslin, Volker wrote:
>>> i have set "host-passthrough" in "/etc/nova/nova.conf"
>>>
>>> =================================
>>> [DEFAULT]
>>> libvirt_cpu_mode = host-passthrough
>>>
>>> [libvirt]
>>> cpu_mode = host-passthrough
>>> =================================
>>>
>>> and restart nove service:
>>> # service nova-compute restart
>>>
>>> for now it works! "lscpu" on guest os shows me the AMD EPIC with all features, very nice. but after reboot the compute-node, the auto-config script change this setting back to "none":
>>>
>>> [libvirt]
>>> cpu_mode = none
>>>
>>> and passthrough did not work anymore :( so how can i prevent this auto-config or define my new config as persistent?
>>
>>
>>
>> _______________________________________________
>> Starlingx-discuss mailing list
>> Starlingx-discuss at lists.starlingx.io
>> http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss
>>
> 
> 
> _______________________________________________
> Starlingx-discuss mailing list
> Starlingx-discuss at lists.starlingx.io
> http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss
> 




More information about the Starlingx-discuss mailing list