qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Semantics of tcg_enabled() and what it means for multi-


From: Peter Crosthwaite
Subject: Re: [Qemu-devel] Semantics of tcg_enabled() and what it means for multi-arch
Date: Sat, 11 Jul 2015 15:45:36 -0700

On Sat, Jul 11, 2015 at 3:23 PM, Paolo Bonzini <address@hidden> wrote:
>
>
> On 11/07/2015 22:46, Peter Crosthwaite wrote:
>> include/exec/ram_addr.h:                if (tcg_enabled()) {
>> include/exec/ram_addr.h:        uint8_t clients = tcg_enabled() ?
>> DIRTY_CLIENTS_ALL : DIRTY_CLIENTS_NOCODE;
>> memory.c:    mr->dirty_log_mask = tcg_enabled() ? (1 << DIRTY_MEMORY_CODE) : 
>> 0;
>> memory.c:    mr->dirty_log_mask = tcg_enabled() ? (1 << DIRTY_MEMORY_CODE) : 
>> 0;
>> memory.c:    mr->dirty_log_mask = tcg_enabled() ? (1 << DIRTY_MEMORY_CODE) : 
>> 0;
>> memory.c:    mr->dirty_log_mask = tcg_enabled() ? (1 << DIRTY_MEMORY_CODE) : 
>> 0;
>>
>> So what is the correct logic for populating dirty_log_mask and friends
>> when there are 0. 1, or more TCG engines?
>
> I think it should be set if there's at least one TCG engine.
>

Thanks. So translate-common.c will implement a global
tcg_any_enabled() for these cases, while others will use a
virtualised/local tcg_enabled().

> Have you checked BTW it the DIRTY_MEMORY_CODE stuff works with multiple
> tcg_ctxs _and_ the same page hosts code for more than one CPU type?
> Offhand I have no idea of the answer...
>

No, I haven't progressed that far. I have a basic test for shared data
area but not shared code.

Regards,
Peter

> Paolo
>



reply via email to

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