[Regression] Nova's 'enabled_perf_events' feature will be broken with Linux Kernel 4.14+
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
Kashyap Chamarthy |
Bug Description
Upstream Linux kernel has removed[*] the 'perf cqm' (Cache
Quality-of-Service Monitoring) from the following kernels onwards:
[linux]$> git tag --contains c39a0e2
v4.14
Impact for OpenStack / Nova
-------
Quoting the summary from Dan Berrangé from a downstream bug (with some
edits, references and formatting):
- Libvirt supports enabling perf event reporting per guest using <perf
../> XML in guest XML
https:/
- OpenStack has abiity to enable this support by using
/etc/
section
- Although libvirt supports many events, OpenStack only supports the
'cmt', 'mbmt' and 'mbml' perf events
- Upstream Linux kernel decided the perf framework integration with
'cmt', 'mbmt' and 'mbml' events was broken by design and entirely
deleted it[*]
- Upstream kernel has provided a new approach to 'cmt', 'mbmt' and
'mbml' info reporting that is *not* using perf framework
- There's unlikely to be any way for libvirt to make this
functionality magically re-appear, given the kernel changes. The new
approach is completely incompatible with what was done before.
IOW, if someone has set "enabled_
previously, they will be unable to start any guest, once they upgrade to
any kernels that has backported the commit: c39a0e2 ("x86/perf/cqm: Wipe
out perf based cqm")[*].
[*] https:/
tags: | added: libvirt |
Changed in nova: | |
status: | New → Confirmed |
importance: | Undecided → Low |
Changed in nova: | |
importance: | Low → High |
Changed in nova: | |
assignee: | Kashyap Chamarthy (kashyapc) → Matt Riedemann (mriedem) |
Changed in nova: | |
assignee: | Matt Riedemann (mriedem) → Kashyap Chamarthy (kashyapc) |
A further comment from Dan (Berrangé) where he writes: for upstream
Nova, there's three possible directions:
1. Extend Nova's support for perf events, so it can enable more than
just the 'cmt', 'mbmt', 'mbml' features, to make it useful again.
I'm unclear if there's any real benefit to this though - depends
if there's any monitoring apps that actually care about collecting
other perf data items
2. Simply delete the perf events feature code from Nova entirely
3. Change to support whatever new way of reporting cmt/mbmt/mbml info
libvirt provides (if any)
I'm leaning towards (2), but before doing that we should wait to see
what, if anything, libvirt does WRT the new infrastructure for
reporting cmt/mbmt/mbml information, so we can see if (3) is
appropriate. It may take a while before this becomes clear.