[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: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] Semantics of tcg_enabled() and what it means for multi-arch |
Date: |
Sun, 12 Jul 2015 00:23:23 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.0.1 |
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.
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...
Paolo