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

Reply via email to