qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 02/20] target-i386: move back cpu_exec_init()


From: Laurent Vivier
Subject: Re: [Qemu-devel] [PATCH v2 02/20] target-i386: move back cpu_exec_init() to init
Date: Fri, 14 Oct 2016 16:12:20 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0


On 14/10/2016 15:48, Eduardo Habkost wrote:
> On Fri, Oct 14, 2016 at 03:34:17PM +0200, Laurent Vivier wrote:
>> On 14/10/2016 15:33, Eduardo Habkost wrote:
>>> On Thu, Oct 13, 2016 at 06:24:44PM +0200, Laurent Vivier wrote:
>>>> We have now the cpu_exec_realize() in realize,
>>>> so the init part must be in init.
>>>>
>>>> I've removed the cannot_destroy_with_object_finalize_yet field as
>>>> unsafe references have been moved to cpu_exec_realize().
>>>> (tested with QOM command provided by commit 4c315c27 with
>>>> "athlon-x86_64-cpu")
>>>>
>>>> CC: Eduardo Habkost <address@hidden>
>>>> Signed-off-by: Laurent Vivier <address@hidden>
>>>
>>> Resending the question I asked in my reply to v1:
>>>
>>> Instead of creating requiring each subclass to manually call
>>> cpu_exec_init()) on instance_init, why don't we move parts of
>>> cpu_exec_init()/cpu_exec_realize() code to cpu_common_initfn()?
>>> (TYPE_CPU's instance_init)
>>>
>>> (And if there's any code that needs to be run after the
>>> subclasses instance_init functions, we can just add a
>>> instance_post_init function to TYPE_CPU).
>>>
>>
>> It's done in PATCH 20/20.
>>
>> Is that what you want?
> 
> Yes (except that I would have inlined the the cpu_exec_init()
> code inside cpu_common_init()).
> 
> I think I expected this to be done in a single step, that
> wouldn't require touching code for all architectures three times.
> Something like:

Well, I've added several steps to help to review and break nothing.

> 1) Move cpu->as, cpu->num_ases, cpu->thread_id, cpu->memory
>    initialization, and "memory" property registration from
>    cpu_exec_init() to cpu_common_init() (no architecture code
>    touched).

system_memory (for the "memory" property) is declared as static in
exec.c, so we can't move it to cpu_common_init().

Laurent




reply via email to

[Prev in Thread] Current Thread [Next in Thread]