Hi, Eduardo

At 09/07/2016 04:05 AM, Eduardo Habkost wrote:
On Tue, Aug 23, 2016 at 01:17:01PM +0800, Dou Liyang wrote:
Hi Alexandre,

At 08/22/2016 04:56 PM, Alexandre DERUMIER wrote:
Hello,

I'm looking to implement cpu hotplug,

and I have a question about cpu flags

currently I have something like

-cpu qemu64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,enforce
-smp 4,sockets=2,cores=2,maxcpus=4


Does I need to define flags like:

-smp 2,sockets=2,cores=2,maxcpus=4
-device 
qemu64-x86_64-cpu,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,enforce,id=cpu1,socket-id=1,core-id=1,thread-id=0

I think we don't need to do that.
In my option, just like this:

-device qemu64-x86_64-cpu,id=cpu1,socket-id=1,..

Because QEMU sets the "-cpu" options in MachineState:

  current_machine->cpu_model = cpu_model;

when you add a CPU, QEMU can get the flag from the MachineState.

You don't need to repeat the flags, but that's not because of
MachineState::cpu_model, but because of the semantics of -smp:

Sorry for the reply.


The option:
  -smp MODEL,+FOO,+BAR

I guess you may mean "-cpu", not "-smp"

is internally translated to:
  -global MODEL.FOO=on
  -global MODEL.BAR=on
in addition to setting the CPU model for creating initial CPUs to
MODEL.


I see.


...

?


Another question,
is -smp mandatory ?  (if I want coldplug all cpus)

it's not mandatory. such as this:

  ./x86_64-softmmu/qemu-system-x86_64 -m 1G /image/fedora.img
  -enable-kvm -monitor stdio

 (qemu) info cpus
  * CPU #0: pc=0xffffffff81060586 (halted) thread_id=4032

the default number of CPUs is 1.


-smp sockets=2,cores=2,maxcpus=4

-device qemu64-x86_64-cpu,id=cpu1,socket-id=1,core-id=1,thread-id=0
-device qemu64-x86_64-cpu,id=cpu1,socket-id=1,core-id=2,thread-id=0
-device qemu64-x86_64-cpu,id=cpu3,socket-id=2,core-id=1,thread-id=0
-device qemu64-x86_64-cpu,id=cpu4,socket-id=2,core-id=2,thread-id=0

or does I need minimum 1 non unplugable cpu

As mentioned above, the default number of CPUs is 1, so "-smp
sockets=2" is the same as "-smp 1,sockets=2".

I assume you mean something like "-smp 0", but that doesn't work
today. I would like to eventually allow all CPUs to be created
using -device, but that's not possible yet.

I am interested in what is the benefit, if we can create all CPUs using
-device.   :)


Thanks,
Dou


-smp 1,sockets=2,cores=2,maxcpus=4
-device qemu64-x86_64-cpu,id=cpu1,socket-id=1,core-id=2,thread-id=0
-device qemu64-x86_64-cpu,id=cpu3,socket-id=2,core-id=1,thread-id=0
-device qemu64-x86_64-cpu,id=cpu4,socket-id=2,core-id=2,thread-id=0


I think that is better, and the socket-id/core-id/thread-id starts at
index 0

I am new to the community. Please don't mind, and take with a grain of
salt.   

Thanks,
Dou






Reply via email to