[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3] target-i386: initialize APIC at CPU level
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH v3] target-i386: initialize APIC at CPU level |
Date: |
Wed, 10 Oct 2012 14:53:11 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120825 Thunderbird/15.0 |
Am 10.10.2012 14:49, schrieb Igor Mammedov:
> On Wed, 10 Oct 2012 12:01:29 +0200
> Andreas Färber <address@hidden> wrote:
>
>> Am 09.10.2012 19:17, schrieb Igor Mammedov:
>>> (L)APIC is a part of cpu [1] so move APIC initialization inside of
>>> x86_cpu object. Since cpu_model and override flags currently specify
>>> whether APIC should be created or not, APIC creation&initialization is
>>> moved into x86_cpu_apic_init() which is called from x86_cpu_realize().
>>>
>>> [1] - all x86 cpus have integrated APIC if we overlook existence of i486,
>>> and it's more convenient to model after majority of them.
>>>
>>> Signed-off-by: Igor Mammedov <address@hidden>
>>
>> I am happy with this latest round of fixes to ad-hoc feedback from my
>> CPU remodeling perspective (as an interim solution), and I depend on
>> this for my APIC changes (code is being moved around here).
>>
>>> + if (env->apic_state == NULL) {
>>> + error_set(errp, QERR_DEVICE_INIT_FAILED, apic_type);
> This is equivalent to error_setg(errp, "Device '%s' could not be
> initialized",...). I'm not sure if repeating the same string in many places
> is a better than using an existing macro.
I thought their intention was to have specialized rather than standard
messages, so maybe "An APIC of type '%s' could not be created." and "The
APIC of type '%s' could not be initialized."?
Andreas
>
>>> + return;
>>> + }
>> [...]
>>> + if (qdev_init(env->apic_state)) {
>>> + error_set(errp, QERR_DEVICE_INIT_FAILED,u
>>> + object_get_typename(OBJECT(env->apic_state)));
>>> + return;
>>> + }
>>
>> Luiz, could you please take a look whether I can apply this to my
>> qom-cpu tree now or whether error_set() should be replaced by
>> error_setg() or something? Contents-wise these are error-checking
>> creation and initialization of a child (APIC) device/object.
>
>>
>> Thanks,
>> Andreas
>>
>
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg