[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC qom-cpu 03/15] target-i386: Update CPU to QOM real
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [RFC qom-cpu 03/15] target-i386: Update CPU to QOM realizefn |
Date: |
Wed, 16 Jan 2013 23:52:47 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130105 Thunderbird/17.0.2 |
Am 16.01.2013 17:04, schrieb Eduardo Habkost:
> On Wed, Jan 16, 2013 at 06:32:48AM +0100, Andreas Färber wrote:
> [...]
>> @@ -2247,6 +2247,9 @@ static void x86_cpu_common_class_init(ObjectClass *oc,
>> void *data)
>> {
>> X86CPUClass *xcc = X86_CPU_CLASS(oc);
>> CPUClass *cc = CPU_CLASS(oc);
>> + DeviceClass *dc = DEVICE_CLASS(oc);
>> +
>> + dc->realize = x86_cpu_realizefn;
>
> The DeviceClass documenation says:
>
> "Any type may override the @realize and/or @unrealize callbacks but
> needs to call (and thus save) the parent type's implementation if so
> desired."
>
> Why are you not following it?
"if so desired" - I didn't desire or need to call code that calls an
initfn that no longer exists after this patch. Same as the ISADevice
conversion series did not unnecessarily call the DeviceClass-level
backwards-compatibility realizefn: to save time-consuming
...Class::parent_realizefn field additions and to not in the end call
code that doesn't NULL-check ...DeviceClass::init. That's qdev's old
"leaf type" concept mentioned in the same documentation.
I mentioned in the cover letter that this needs to be changed once a
CPUClass-level realizefn is introduced. I could introduce a no-op
realizefn there and do the regular store+call.
Note that wherever we set realized = true on CPUs, we need to test and
re-review for further unchecked uses of parent_bus. It has been pushed
to qom-cpu-realize branch for anyone that wants to play with the latest
version.
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
[Qemu-devel] [RFC qom-cpu 02/15] target-arm: Update CPU to QOM realizefn, Andreas Färber, 2013/01/16
[Qemu-devel] [RFC qom-cpu 05/15] target-ppc: Update CPU to QOM realizefn, Andreas Färber, 2013/01/16
[Qemu-devel] [RFC qom-cpu 04/15] target-openrisc: Update CPU to QOM realizefn, Andreas Färber, 2013/01/16
[Qemu-devel] [RFC qom-cpu 07/15] target-lm32: Introduce QOM realizefn for LM32CPU, Andreas Färber, 2013/01/16
[Qemu-devel] [RFC qom-cpu 08/15] target-m68k: Introduce QOM realizefn for M68kCPU, Andreas Färber, 2013/01/16