[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 4/5] tcg: reorder removal from lists in tb_phys_
Re: [Qemu-devel] [PATCH 4/5] tcg: reorder removal from lists in tb_phys_invalidate
Mon, 28 Mar 2016 17:17:41 -0700
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0
On 03/28/2016 01:58 PM, Paolo Bonzini wrote:
On 28/03/2016 20:42, Sergey Fedorov wrote:
On 17/03/16 16:46, address@hidden wrote:
First the translation block is invalidated, for which a simple write
to tb->pc is enough. This means that cpu-exec will not pick up anymore
the block, though it may still execute it through chained jumps. This
also replaces the NULLing out of the pointer in the CPUs' local cache.
Although, using 'tb->pc' to mark a TB as invalid is probably not such a
good idea. There may be some cases when PC could become equal to -1. For
example, ARMv6-M uses PC >= 0xFFFFFFF0 to perform exception return. So
we'd better introduce a separate 'tb->valid' or 'tb->invalid' flag.
It is also possible to use tb->flags for that. I suspect that all-ones
tb flags is never valid, but it could also be a #define.
That might work by accident, but it might not. You'd need to reserve a bit
across all of the targets.
[Qemu-devel] [PATCH 3/5] tcg: always keep jump target and tb->jmp_next consistent, sergey . fedorov, 2016/03/17
[Qemu-devel] [PATCH 5/5] tcg: move tb_invalidated_flag to CPUState, sergey . fedorov, 2016/03/17