Dear maintainers,
First of all, thank you very much for your recent review of my patch
[1].
In this version (v3), I have attempted to address the most crucial and
challenging aspect highlighted in your last review.
I am hopeful that we can now engage in a discussion and address the
remaining potential points that need attention.
Thank you for your continued guidance.
v2 -> v3
--------
- Move all memory allocations from Clib to Glib
- Compile on *BSD (working on Linux only)
- No more limitation on the virtual package: each vCPU that belongs to
the same virtual package is giving the same results like expected on
a real CPU.
This has been tested topology like:
-smp 4,sockets=2
-smp 16,sockets=4,cores=2,threads=2
v1 -> v2
--------
- To overcome the CVE-2020-8694 a socket communication is created
to a priviliged helper
- Add the priviliged helper (qemu-vmsr-helper)
- Add SO_PEERCRED in qio channel socket
RFC -> v1
---------
- Add vmsr_* in front of all vmsr specific function
- Change malloc()/calloc()... with all glib equivalent
- Pre-allocate all dynamic memories when possible
- Add a Documentation of implementation, limitation and usage
Best regards,
Anthony
[1]: https://www.mail-archive.com/qemu-devel@nongnu.org/msg1003382.html
Anthony Harivel (3):
qio: add support for SO_PEERCRED for socket channel
tools: build qemu-vmsr-helper
Add support for RAPL MSRs in KVM/Qemu
accel/kvm/kvm-all.c | 27 ++
contrib/systemd/qemu-vmsr-helper.service | 15 +
contrib/systemd/qemu-vmsr-helper.socket | 9 +
docs/specs/index.rst | 1 +
docs/specs/rapl-msr.rst | 133 ++++++
docs/tools/index.rst | 1 +
docs/tools/qemu-vmsr-helper.rst | 89 ++++
include/io/channel.h | 21 +
include/sysemu/kvm_int.h | 17 +
io/channel-socket.c | 23 +
io/channel.c | 12 +
meson.build | 5 +
target/i386/cpu.h | 8 +
target/i386/kvm/kvm.c | 348 ++++++++++++++++
target/i386/kvm/meson.build | 1 +
target/i386/kvm/vmsr_energy.c | 295 +++++++++++++
target/i386/kvm/vmsr_energy.h | 87 ++++
tools/i386/qemu-vmsr-helper.c | 507 +++++++++++++++++++++++
tools/i386/rapl-msr-index.h | 28 ++
19 files changed, 1627 insertions(+)
create mode 100644 contrib/systemd/qemu-vmsr-helper.service
create mode 100644 contrib/systemd/qemu-vmsr-helper.socket
create mode 100644 docs/specs/rapl-msr.rst
create mode 100644 docs/tools/qemu-vmsr-helper.rst
create mode 100644 target/i386/kvm/vmsr_energy.c
create mode 100644 target/i386/kvm/vmsr_energy.h
create mode 100644 tools/i386/qemu-vmsr-helper.c
create mode 100644 tools/i386/rapl-msr-index.h
--
2.43.0