On 2012-02-16 13:51, Anthony Liguori wrote:
> On 02/16/2012 06:01 AM, Jan Kiszka wrote:
>> On 2012-02-16 00:16, Igor Mammedov wrote:
>>> +static ICCBusDeviceInfo cpu_device_info = {
>>> +    .qdev.name = "cpu-pc",
>>> +    .qdev.size = sizeof(CPUPC),
>>> +    .qdev.reset = cpu_device_reset,
>>> +    .init = cpu_device_init,
>>> +    .qdev.props = (Property[]) {
>>> +        DEFINE_PROP_STRING("model", CPUPC, model),
>>
>> And how do you pass in feature flags? Or the core layout? Basically both
>> -cpu and -smp need to be expressible via multiple "-device cpu-x86,xxx"
>> (not "pc") commands.
> 
> The approach that I'd recommend is:
> 
> 1) convert CPU_COMMON_STATE to a structure named CPUCommonState, 
> query/replace 
> all references to members of CPU_COMMON_STATE appropriately.
> 
> 2) convert as many users of CPUState to CPUCommonState as possible.
> 
> 3) make CPUCommonState a base class, move it to the front of the structure, 
> and 
> attempt to measure the impact to TCG.
> 
> 4) if (3) is significant, special case things in QOM
> 
> 5) make target specific code use target specific CPUState typename
> 
> 6) eliminate #define CPUState
> 
> 7) make on-processor devices (like lapic) children of target specific CPUState
> 
> 8) express target specific flags/features via QOM properties
> 
> 9) make machine expose target specific CPUState links that can be set by the 
> user.

Also, I'm wondering what names those CPUs should have. I think we should
expose model names as device names and avoid a "model" property.

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux

Reply via email to