qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v7 7/9] i386: Add support for CPUID_8000_001E fo


From: Moger, Babu
Subject: Re: [Qemu-devel] [PATCH v7 7/9] i386: Add support for CPUID_8000_001E for AMD
Date: Tue, 8 May 2018 15:02:07 +0000

> -----Original Message-----
> From: Eduardo Habkost [mailto:address@hidden
> Sent: Tuesday, May 8, 2018 9:17 AM
> To: Moger, Babu <address@hidden>
> Cc: address@hidden; address@hidden; address@hidden;
> address@hidden; address@hidden; address@hidden;
> address@hidden; address@hidden; address@hidden
> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]