> -----Original Message----- > From: Eduardo Habkost [mailto:ehabkost@xxxxxxxxxx] > Sent: Tuesday, May 8, 2018 9:17 AM > To: Moger, Babu <Babu.Moger@xxxxxxx> > Cc: mst@xxxxxxxxxx; marcel@xxxxxxxxxx; pbonzini@xxxxxxxxxx; > rth@xxxxxxxxxxx; mtosatti@xxxxxxxxxx; geoff@xxxxxxxxxxxxxxx; > kash@xxxxxxxxxxxxxx; qemu-devel@xxxxxxxxxx; kvm@xxxxxxxxxxxxxxx > Subject: Re: [Qemu-devel] [PATCH v7 7/9] i386: Add support for > CPUID_8000_001E for AMD > > On Mon, May 07, 2018 at 11:44:31PM +0000, Moger, Babu wrote: > [...] > > > > + > > > > /* > > > > * Encode cache info for CPUID[0x80000006].ECX and > > > CPUID[0x80000006].EDX > > > > * @l3 can be NULL. > > > > @@ -4105,6 +4111,14 @@ void cpu_x86_cpuid(CPUX86State *env, > > > uint32_t index, uint32_t count, > > > > break; > > > > } > > > > break; > > > > + case 0x8000001E: > > > > + assert(cpu->core_id <= 255); > > > > > > Where's the code that ensures this assert() line can't be > > > triggered by any command-line configuration? > > > > I did not understand this. Can you please elaborate. Thanks > > The user must not be able to trigger an assert(), so we need to > ensure that core_id will never be larger than 255. Is there > existing code that ensures that? I see that max_cpus is set to 255 and also there are checks to make sure core_id does not go above 255. I verified it while testing. So, probably we don't need assert here. Radim asked me to add this assert. I can remove it if no abjections. > > > > > > > > > > + *eax = EXTENDED_APIC_ID((cs->nr_threads - 1), > > > > + cpu->socket_id, cpu->core_id, cpu->thread_id); > > > > + *ebx = (cs->nr_threads - 1) << 8 | cpu->core_id; > > > > + *ecx = cpu->socket_id; > > > > + *edx = 0; > > > > + break; > > > > case 0xC0000000: > > > > *eax = env->cpuid_xlevel2; > > > > *ebx = 0; > > > > -- > > > > 2.7.4 > > > > > > > > > > > > > > -- > > > Eduardo > > -- > Eduardo