libvirt: Virt driver large page allocation for guest RAM

Registered by Daniel Berrange

This feature aims to improve the libvirt driver so that it can use large pages
for backing the guest RAM allocation. This will improve the performance of
guest workloads by improves TLB cache efficiency. It will effectively create
the concept of "dedicated RAM" guest instances.

Blueprint information

Status:
Complete
Approver:
John Garbutt
Priority:
Low
Drafter:
Daniel Berrange
Direction:
Approved
Assignee:
Daniel Berrange
Definition:
Approved
Series goal:
Accepted for kilo
Implementation:
Implemented
Milestone target:
milestone icon 2015.1.0
Started by
Daniel Berrange
Completed by
John Garbutt

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:virt-driver-large-pages,n,z

Addressed by: https://review.openstack.org/93653
    Virt driver large page allocation for guest RAM

Gerrit topic: https://review.openstack.org/#q,topic:bp/virt-driver-numa-placement,n,z

Addressed by: https://review.openstack.org/99155
    libvirt: add support for memory backing parameters

Gerrit topic: https://review.openstack.org/#q,topic:bp/virt-driver-large-pages,n,z

Gerrit topic: https://review.openstack.org/#q,topic:virt-driver-guest-cpu-memory-placement-v5,n,z

Addressed by: https://review.openstack.org/105693
    libvirt: add support for memory tuning in config

Addressed by: https://review.openstack.org/127251
    libvirt: introduce config to handle cells memory pages caps

Addressed by: https://review.openstack.org/127252
    hardware: make cell topology to handle available memory pages

Addressed by: https://review.openstack.org/127253
    hardward: make numa toplogy cell usage to handle memory pages

Addressed by: https://review.openstack.org/127983
    libvirt: enhance libvirt driver to update pages usages

Addressed by: https://review.openstack.org/128006
    hardware: add method to return desired memory page size from flavor

Addressed by: https://review.openstack.org/128339
    libvirt: enhance config memory backing to handle hugepages

Addressed by: https://review.openstack.org/128702
    libvirt: add method to return numa topology

Addressed by: https://review.openstack.org/128703
    libvirt: add method to return memory backing

Addressed by: https://review.openstack.org/128882
    hardware: add method to verify requested hugepages

Addressed by: https://review.openstack.org/129682
    libvirt: report hugepages topology to host_state

Addressed by: https://review.openstack.org/129683
    compute: update hugepages usage from resource_tracker

Addressed by: https://review.openstack.org/131386
    Make run_tests.sh work with oslo.concurrency

Addressed by: https://review.openstack.org/131774
    hardware: fix in doctstring the memory unit used

Addressed by: https://review.openstack.org/131775
    hardware: introduce VirtNUMATopologyCellInstance

Addressed by: https://review.openstack.org/133970
    scheduler: enhance numa to take into account pages requests

Addressed by: https://review.openstack.org/133998
    Instances with NUMA will be packed onto hosts

Addressed by: https://review.openstack.org/133999
    Remove VirtNUMAHostTopology.claim_test() method

Addressed by: https://review.openstack.org/133946
    Add support for fitting instance NUMA nodes onto a host

Addressed by: https://review.openstack.org/134308
    hardware: determines whether a request is acceptable by host cell

Addressed by: https://review.openstack.org/134598
    hardware: clean test to use well defined fake flavor

Addressed by: https://review.openstack.org/138677
    objects: introduce numa pages topology as an object

Addressed by: https://review.openstack.org/138678
    libvirt: enhance to return avail free pages on cells

Addressed by: https://review.openstack.org/140670
    objects: fix changed fields for instance numa cell

Moving to kilo-2, as its not been moved into the NeedsCodeReview state, it is assumed that not all patches are yet up for review. --johnthetubaguy 16th December 2014

Seems like most patches have merged, marking as Implemented. --johnthetubaguy 26th Jan 2015

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.