Hi Hendrik, On Thu, Sep 5, 2024 at 1:22 PM Hendrik Wuethrich <whend...@google.com> wrote: > diff --git a/target/i386/cpu.c b/target/i386/cpu.c > index 4688d140c2..a5c4e3c463 100644 > --- a/target/i386/cpu.c > +++ b/target/i386/cpu.c > @@ -42,6 +42,7 @@ > #include "hw/boards.h" > #include "hw/i386/sgx-epc.h" > #endif > +#include "hw/i386/rdt.h" > > #include "disas/capstone.h" > #include "cpu-internal.h" > @@ -6629,6 +6630,68 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, > uint32_t count, > assert(!(*eax & ~0x1f)); > *ebx &= 0xffff; /* The count doesn't need to be reliable. */ > break; > +#ifndef CONFIG_USER_ONLY > + case 0xF: > + /* Shared Resource Monitoring Enumeration Leaf */ > + *eax = 0; > + *ebx = 0; > + *ecx = 0; > + *edx = 0; > + if (!(env->features[FEAT_7_0_EBX] & CPUID_7_0_EBX_PQM)) > + break; > + assert(cpu->rdt);
If I just add the command line from the cover-letter: "-cpu Skylake-Server,+l3-cmt,+rdt-m,+rdt-a,+mba", this assertion fires. I needed to add "-device rdt" to the command-line as well. Would it be friendlier to warn the user that there's no rdt device and break? Thanks! -Peter