tenant contol of qemu performance monitoring unit

Registered by sean mooney

qemu/kvm supports emulation of a vPMU to enable standard performance monitoring tools such as perf to be used
within a virtualisation environment. The vPMU which is available on x86 cpus emulate the hardware PMU
found on intel processors and was introduced in kvm in kernel 3.3.1.

while kvm/qemu support for a vPMU is generally a useful feature the requirement to collect and maintain
virtual performance counter introduces additional latency ~10us which is about 1% of the total budget
for 5G traffic processing.

libvirt introduced support for vPMU control in 1.2.12
see https://libvirt.org/formatdomain.html#elementsFeatures
so this feature is available in our minimum supported libvirt of 1.3.1 .

This specless blueprint proposes adding a tristate image metadata key hw_pmu=True|false|<none> (default:<none>)
and a corresponding flavor extra spec hw:pmu=true|false|<none> (default:<none>)
to enable/disable the pmu explcitly with a default of none which will skip emmiting the
pmu element allowing libvirt/qemu to implement there default policy as it does today.

if approved https://github.com/openstack/glance/blob/master/etc/metadefs/compute-libvirt.json
will be updated with the new value and the flavor docs https://docs.openstack.org/nova/latest/user/flavors.html
will be extended appropriately.

Blueprint information

Status:
Complete
Approver:
Eric Fried
Priority:
Low
Drafter:
sean mooney
Direction:
Approved
Assignee:
sean mooney
Definition:
Approved
Series goal:
Accepted for train
Implementation:
Implemented
Milestone target:
milestone icon train-3
Started by
sean mooney
Completed by
Matt Riedemann

Related branches

Sprints

Whiteboard

On the nova meeting there was not enough cores to decide the fate of this bp for Stein. It feels a quick spec would be good about the flavor exta_spec but that most probably means that this bp will slip to Train. -- gibi 20190110

ill file a spec for this for train in the next week and start working on the implementation.
assuming people are still ok with the general idea it should be easy to update the implementation to match what is decided in the spec. for now ill assume it will
remain as a tristate bool. (true, false, <unset or python None>) -- sean 2019-03-26

Gerrit topic: https://review.openstack.org/#/q/topic:bp/libvirt-disable-pmu-for-realtime-guests

Addressed by: https://review.openstack.org/651269
    Libvirt: add vPMU spec for train

Gerrit topic: https://review.opendev.org/#/q/topic:bp/libvirt-disable-pmu-for-realtime-guests

Addressed by: https://review.opendev.org/651269
    Libvirt: add vPMU spec for train

Gerrit topic: https://review.opendev.org/#/q/topic:bp/libvirt-pmu-configuration

Addressed by: https://review.opendev.org/671338
    Libvirt: add support for vPMU configuration.

Addressed by: https://review.opendev.org/677769
    FUP for I5576fa2a67d2771614266022428b4a95487ab6d5

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.