On 05/10/2012 01:15 AM, Andreas Färber wrote:
Am 17.04.2012 12:28, schrieb Igor Mammedov:
----- Original Message -----
From: "Andreas Färber"<afaer...@suse.de>
...
I think the right name would be /machine/cpu[%d]/cpu. The local
APIC
for example should reside under /machine/cpu[%d]/apic.
Depends on how we model the CPU, I was kinda waiting for feedback on
that.
I would prefer /machine/cpu[%d], with the APIC being a child
.../apic,
if possible. That however depends on how the device'ification of the
CPU
Ok, I'll change /machine/cpu%d to /machine/cpu[%d].
Note that I needed a similar patch recently in my quest to move fields
from CPU_COMMON into CPUState:
https://github.com/afaerber/qemu-cpu/commits/qom-cpu (WIP)
current state:
https://github.com/afaerber/qemu-cpu/commit/1318ad13cda52e694caea5cc72293c5879db3f9f
I chose to do it in pc.c instead because for other architectures the
placement will be a machine-specific decision.
I'm trying to re-base your commit on top of this series and doing it at board
level
might be a problem if you think about doing hotplug in generalized way:
1. create new obj instance for cpu
2. set properties 'might include setting apic with its creation'
3. realize obj instance
would it better to split name and cpu creation into 2 stages:
- at board level: create links for all possible cpus
- in target-XXX/cpu.c:XXX_cpu_initfn set appropriate link to itself (1)
and than any property that might need canonical path could be set in general
way (2)?
Of cause this scheme is screwed up by the fact that there isn't canonical
path for links (cpu[xxx]). Any thoughts how to deal with it?
- Can we use object_property_add_child at runtime to add new cpu to /machine,
instead of link?
I've used cpu_index, but it seems cpuid_apic_id is assigned only once,
from cpu_index, so it should be identical. What's the difference?
Once Jan voiced that user visible cpu id, should be apic_id in context of cpu
hotplug
(i.e. when doing: device_add xxx_cpu,id=12345,...)
"Jan, please correct me if I've got you wrong."
So QOM tree probably should reflect this id and not cpu_index.
However cpu_index and apic_id are the same now and bios assumes it as well.
What are possible benefits of using cpuid_apic_id != cpu_index for qemu?
--
-----
Igor