From: Anthony Harivel <aharivel@redhat.com>
To: pbonzini@redhat.com, mtosatti@redhat.com, berrange@redhat.com
Cc: qemu-devel@nongnu.org, vchundur@redhat.com, rjarry@redhat.com,
Anthony Harivel <aharivel@redhat.com>
Subject: [PATCH v6 0/3] Add support for the RAPL MSRs series
Date: Wed, 22 May 2024 17:34:49 +0200 [thread overview]
Message-ID: <20240522153453.1230389-1-aharivel@redhat.com> (raw)
Dear maintainers,
First of all, thank you very much for your review of my patch
[1].
In this version (v6), I have attempted to address all the problems
addressed by Daniel and Paolo during the last review.
However, two open questions remains unanswered that would require the
attention of a x86 maintainers:
1)Should I move from -kvm to -cpu the rapl feature ? [2]
2)Should I already rename to "rapl_vmsr_*" in order to anticipate the
futur TMPI architecture ? [end of 3]
Thank you again for your continued guidance.
v5 -> v6
--------
- Better error consistency in qio_channel_get_peerpid()
- Memory leak g_strdup_printf/g_build_filename corrected
- Renaming several struct with "vmsr_*" for better namespace
- Renamed several struct with "guest_*" for better comprehension
- Optimization suggerate from Daniel
- Crash problem solved [4]
v4 -> v5
--------
- correct qio_channel_get_peerpid: return pid = -1 in case of error
- Vmsr_helper: compile only for x86
- Vmsr_helper: use qio_channel_read/write_all
- Vmsr_helper: abandon user/group
- Vmsr_energy.c: correct all error_report
- Vmsr thread: compute default socket path only once
- Vmsr thread: open socket only once
- Pass relevant QEMU CI
v3 -> v4
--------
- Correct memory leaks with AddressSanitizer
- Add sanity check for QEMU and qemu-vmsr-helper for checking if host is
INTEL and if RAPL is activated.
- Rename poor variables naming for easier comprehension
- Move code that checks Host before creating the VMSR thread
- Get rid of libnuma: create function that read sysfs for reading the
Host topology instead
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://mail.gnu.org/archive/html/qemu-devel/2024-04/msg01570.html
[2]: https://mail.gnu.org/archive/html/qemu-devel/2024-04/msg03947.html
[3]: https://mail.gnu.org/archive/html/qemu-devel/2024-04/msg02350.html
[4]: https://mail.gnu.org/archive/html/qemu-devel/2024-04/msg02481.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 | 155 +++++++
docs/tools/index.rst | 1 +
docs/tools/qemu-vmsr-helper.rst | 89 ++++
include/io/channel.h | 21 +
include/sysemu/kvm_int.h | 32 ++
io/channel-socket.c | 28 ++
io/channel.c | 13 +
meson.build | 7 +
target/i386/cpu.h | 8 +
target/i386/kvm/kvm.c | 431 +++++++++++++++++-
target/i386/kvm/meson.build | 1 +
target/i386/kvm/vmsr_energy.c | 337 ++++++++++++++
target/i386/kvm/vmsr_energy.h | 99 +++++
tools/i386/qemu-vmsr-helper.c | 530 +++++++++++++++++++++++
tools/i386/rapl-msr-index.h | 28 ++
19 files changed, 1831 insertions(+), 1 deletion(-)
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.45.1
next reply other threads:[~2024-05-22 15:35 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-22 15:34 Anthony Harivel [this message]
2024-05-22 15:34 ` [PATCH v6 1/3] qio: add support for SO_PEERCRED for socket channel Anthony Harivel
2024-05-22 15:34 ` [PATCH v6 2/3] tools: build qemu-vmsr-helper Anthony Harivel
2024-05-22 15:34 ` [PATCH v6 3/3] Add support for RAPL MSRs in KVM/Qemu Anthony Harivel
2024-10-16 12:17 ` Igor Mammedov
2024-10-16 13:04 ` Anthony Harivel
2024-06-26 14:34 ` [PATCH v6 0/3] Add support for the RAPL MSRs series Anthony Harivel
2024-10-16 11:52 ` Igor Mammedov
2024-10-16 12:56 ` Anthony Harivel
2024-10-18 12:25 ` Igor Mammedov
2024-10-18 12:59 ` Daniel P. Berrangé
2024-10-22 12:46 ` Igor Mammedov
2024-10-22 13:15 ` Daniel P. Berrangé
2024-10-22 14:16 ` Anthony Harivel
2024-10-22 14:29 ` Daniel P. Berrangé
2024-10-22 14:40 ` Anthony Harivel
2024-11-01 15:09 ` Igor Mammedov
2024-11-02 9:32 ` Anthony Harivel
2024-11-04 9:49 ` Igor Mammedov
2024-11-05 7:11 ` Christian Horn
2024-11-05 12:19 ` Igor Mammedov
2024-11-06 3:14 ` Christian Horn
2024-10-22 15:35 ` Igor Mammedov
2024-10-22 13:49 ` Anthony Harivel
2024-11-04 9:40 ` Igor Mammedov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240522153453.1230389-1-aharivel@redhat.com \
--to=aharivel@redhat.com \
--cc=berrange@redhat.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rjarry@redhat.com \
--cc=vchundur@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).