On 2019/8/16 21:49, Eduardo Habkost wrote:
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.


You're right about this.
Sorry to make a mess to support die topology.



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) {





Reply via email to