[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] target/i386: Remove core_id assert check in CPUID 0x80000
From: |
Eduardo Habkost |
Subject: |
Re: [PATCH v2] target/i386: Remove core_id assert check in CPUID 0x8000001E |
Date: |
Mon, 21 Sep 2020 20:03:32 -0400 |
On Mon, Sep 21, 2020 at 05:47:28PM -0500, Babu Moger wrote:
> With x2apic enabled, configurations can have more that 255 cores.
> Noticed the device add test is hitting an assert when during cpu
> hotplug with core_id > 255. This is due to assert check in the
> CPUID 0x8000001E.
>
> Remove the assert check and fix the problem.
>
> Fixes the bug:
> Link: https://bugzilla.redhat.com/show_bug.cgi?id=1834200
>
> Signed-off-by: Babu Moger <babu.moger@amd.com>
Queued, thanks!
> ---
> v2:
> Resubmitting an old patch which was lost in the mix.
> Just rebased on the latest tree.
> v1:
>
> https://lore.kernel.org/qemu-devel/159257395689.52908.4409314503988289481.stgit@naples-babu.amd.com/
>
> target/i386/cpu.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> index 1c58f764dc..4f1d62c838 100644
> --- a/target/i386/cpu.c
> +++ b/target/i386/cpu.c
> @@ -5912,9 +5912,14 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,
> uint32_t count,
> }
> break;
> case 0x8000001E:
> - assert(cpu->core_id <= 255);
> - encode_topo_cpuid8000001e(cpu, &topo_info,
> - eax, ebx, ecx, edx);
> + if (cpu->core_id <= 255) {
> + encode_topo_cpuid8000001e(cpu, &topo_info, eax, ebx, ecx, edx);
> + } else {
> + *eax = 0;
> + *ebx = 0;
> + *ecx = 0;
> + *edx = 0;
> + }
> break;
> case 0xC0000000:
> *eax = env->cpuid_xlevel2;
>
--
Eduardo