On Fri, Aug 16, 2019 at 09:04:16AM +0800, Like Xu wrote: > Hi, > > On 2019/8/16 2:38, Eduardo Habkost wrote: > > The error message for die-id range validation is incorrect. Example: > > > > $ qemu-system-x86_64 -smp 1,sockets=6,maxcpus=6 \ > > -device qemu64-x86_64-cpu,socket-id=1,die-id=1,core-id=0,thread-id=0 > > qemu-system-x86_64: -device > > qemu64-x86_64-cpu,socket-id=1,die-id=1,core-id=0,thread-id=0: \ > > Invalid CPU die-id: 1 must be in range 0:5 > > > > The actual range for die-id in this example is 0:0. > > There is one die per socket by default. > > The case sockets=6 means there are 6 dies by default > and the range for die-id is 0:5. >
I don't understand why you say that. die-id supposed to identify a die inside a socket. The code below is already checking for (cpu->die_id > pcms->smp_dies - 1) because of that. > > > > Fix the error message to use smp_dies and print the correct range. > > > > Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> > > --- > > hw/i386/pc.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/hw/i386/pc.c b/hw/i386/pc.c > > index 549c437050..24b03bb49c 100644 > > --- a/hw/i386/pc.c > > +++ b/hw/i386/pc.c > > @@ -2412,7 +2412,7 @@ static void pc_cpu_pre_plug(HotplugHandler > > *hotplug_dev, > > return; > > } else if (cpu->die_id > pcms->smp_dies - 1) { > > error_setg(errp, "Invalid CPU die-id: %u must be in range > > 0:%u", > > - cpu->die_id, max_socket); > > + cpu->die_id, pcms->smp_dies - 1); > > return; > > } > > if (cpu->core_id < 0) { > > > -- Eduardo