Libvirt driver emulator threads placement policy

Registered by Daniel Berrange on 2015-09-21

The Nova schedular determines CPU resource utilization and instance CPU placement based on the number of vCPUs in the flavour. A number of hypervisors have work that is performed in the host OS on behalf of a guest instance, which does not take place in association with a vCPU. This is currently unaccounted for in Nova scheduling and cannot have any placement policy controls applied.

Blueprint information

Status:
Complete
Approver:
Dan Smith
Priority:
Low
Drafter:
Daniel Berrange
Direction:
Approved
Assignee:
Sahid Orentino
Definition:
Approved
Series goal:
Accepted for pike
Implementation:
Implemented
Milestone target:
milestone icon pike-1
Started by
Matt Riedemann on 2016-11-17
Completed by
Matt Riedemann on 2017-04-18

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/libvirt-emulator-threads-policy,n,z

Addressed by: https://review.openstack.org/225893
    Libvirt driver emulator threads placement policy

Addressed by: https://review.openstack.org/284094
    Libvirt driver emulator threads placement policy

Addressed by: https://review.openstack.org/385022
    object: add new field cpu_emulator_threads_policy

Addressed by: https://review.openstack.org/385023
    virt: add numa constraint for emulator threads policy

Addressed by: https://review.openstack.org/385024
    virt: update overhead to take into account vCPUs

Addressed by: https://review.openstack.org/385364
    libvirt: return overhead if isolate emulator threads requested

Addressed by: https://review.openstack.org/400874
    objects: add new field cpus_overhead in NUMACell

Addressed by: https://review.openstack.org/400876
    numa: take into account cpus overhead

Addressed by: https://review.openstack.org/400877
    numa: update numa usage incording the cpu overhead

Addressed by: https://review.openstack.org/400878
    libvirt: make emulator threads to run on the reserved pCPU

Addressed by: https://review.openstack.org/400875
    numa: fit instance toplogy with cpu overhead onto cores

Addressed by: https://review.openstack.org/406081
    Add support for image metadata

We're now past the feature freeze for Ocata so I've deferred the rest of this to Pike. -- mriedem 20170128

Addressed by: https://review.openstack.org/427066
    Libvirt driver emulator threads placement policy

Re-approved for Pike. -- mriedem 20170303

Addressed by: https://review.openstack.org/501205
    objects: add new field MASK for emulator threads policy

Addressed by: https://review.openstack.org/501206
    objects: add cpu_emulator_threads_mask field

Addressed by: https://review.openstack.org/501207
    hardware: add method to get emulator threads mask

Addressed by: https://review.openstack.org/501208
    hardware: handle/check emulator threads mask constraints

Addressed by: https://review.openstack.org/501209
    hardware: add method to compute emulator threads placement

Addressed by: https://review.openstack.org/501210
    libvirt: configure emulator threads of a guest based on mask

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.