On Fri, Dec 13, 2024 at 05:26:37PM +0000, Hendrik Wuethrich wrote: > From: Hendrik Wüthrich <whend...@google.com> > > The aim of this patch series is to emulate Intel RDT features in order > to make testing of the linux Resctrl subsystem possible with Qemu. > > A branch with the patches applied can be found at: > https://github.com/Gray-Colors/Intel_RDT_patches_applied/tree/rdt_v5 > > The changes made introduce the following features:
There was just my minor comment, are you going to post v6? > * Feature enumeration for Intel RDT allocation. > * Feature enumeration for Intel RDT monitoring. > * Intel RDT monitoring system interface. > * Intel RDT allocation system interface. > > By adding these features, a barebones implementation most of the RDT > state and MSRs is introduced, which can be enabled through qemu > command line flags. > The features missing for a faithful recreation of RDT are CDP and > non-linear MBA throttle, as well as the possibility to configure > various values through the command line, as some properties can be > different across different machines. For increased ease of use, the > correct features should be automatically enabled on machines that > support RDT functionality. > The missing features mentioned above will be implemented in the > following order: > > * Expand feature set for RDT allocation to include CDP and non-linear > MBA throttle > * Allow for command line configuration of some values, such as the L3 > CBM length > * Automatically enable RDT on machines that officially support it. > > Will NOT be implemented > * Tests to simulate interaction with the host by the guest > > Command line examples assuming entire patch series is applied (This > requires a kernel with Resctrl enabled): > > To emulate Intel RDT features: > > Currently, it is necessary to force the RDT options on in qemu, as it is > not automatically enabled for any machines. An example would be the > following: > -cpu Skylake-Server,+l3-cmt,+rdt-m,+rdt-a,+mba,+l3-cat,+l2-cat > and > -device rdt > > Just enabling RDT in qemu won't really help, though. The following > option allows resctrl in the kernel: > - Kernel options: rdt=mbmlocal,mbmtotal,cmt,mba,l2cat,l3cat > > To use Resctrl in the Qemu, please refer to: > https://docs.kernel.org/arch/x86/resctrl.html > > V4 -> V5 > - rebase > - fix feature bit names to all be in hex > > Hendrik Wüthrich (8): > i386: Add Intel RDT device and State to config. > i386: Add init and realize functionality for RDT device. > i386: Add RDT functionality > i386: Add RDT device interface through MSRs > i386: Add CPUID enumeration for RDT > i386: Add RDT feature flags. > i386/cpu: Adjust CPUID level for RDT features > i386/cpu: Adjust level for RDT on full_cpuid_auto_level > > hw/i386/Kconfig | 4 + > hw/i386/meson.build | 1 + > hw/i386/rdt.c | 286 +++++++++++++++++++++++++++ > include/hw/i386/rdt.h | 76 +++++++ > target/i386/cpu.c | 114 ++++++++++- > target/i386/cpu.h | 24 +++ > target/i386/tcg/sysemu/misc_helper.c | 81 ++++++++ > 7 files changed, 584 insertions(+), 2 deletions(-) > create mode 100644 hw/i386/rdt.c > create mode 100644 include/hw/i386/rdt.h > > -- > 2.47.1.613.gc27f4b7a9f-goog