[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v6 11/19] cputlb: introduce tlb_flush_* async wo
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH v6 11/19] cputlb: introduce tlb_flush_* async work. |
Date: |
Thu, 10 Nov 2016 17:34:35 +0000 |
User-agent: |
mu4e 0.9.17; emacs 25.1.50.16 |
Richard Henderson <address@hidden> writes:
> On 11/09/2016 03:57 PM, Alex Bennée wrote:
>> +void tlb_flush_page_all(target_ulong addr)
>
> It's a nit, but when I read this I think all pages, not all cpus.
> Can we rename this tlb_fluch_page_all_cpus?
So to properly support ARM TLB flush semantics I want to move some of
the looping in the helpers into cputlb.c so I'm thinking we'll have:
tlb_flush_page_all_cpus
tlb_flush_by_mmuidx_all_cpus
tlb_flush_page_by_mmuidx_all_cpus
Which will have the initial parameters of at least
CPUState *src, bool sync
Where src is the source vCPU of the flush request and sync will cause
the source vCPU to schedule its work as safe work and do a
cpu_loop_exit. This will allow the helpers to ensure TLB flushes are in
a known state after executing the helper.
In fact for ARM we'll be able to put off the reckoning until a DMB
instruction comes along and we can force synchronisation at that point
but I'm assuming there must be other architectures with stricter
requirements.
>
> Otherwise,
>
> Reviewed-by: Richard Henderson <address@hidden>
>
>
> r~
--
Alex Bennée
- Re: [Qemu-devel] [PATCH v6 08/19] tcg: enable thread-per-vCPU, (continued)
- [Qemu-devel] [PATCH v6 06/19] tcg: remove global exit_request, Alex Bennée, 2016/11/09
- [Qemu-devel] [PATCH v6 12/19] cputlb: tweak qemu_ram_addr_from_host_nofail reporting, Alex Bennée, 2016/11/09
- [Qemu-devel] [PATCH v6 07/19] tcg: enable tb_lock() for SoftMMU, Alex Bennée, 2016/11/09
- [Qemu-devel] [PATCH v6 10/19] cputlb: add assert_cpu_is_self checks, Alex Bennée, 2016/11/09
- [Qemu-devel] [PATCH v6 11/19] cputlb: introduce tlb_flush_* async work., Alex Bennée, 2016/11/09
- [Qemu-devel] [PATCH v6 15/19] target-arm/cpu: don't reset TLB structures, use cputlb to do it, Alex Bennée, 2016/11/09
- [Qemu-devel] [PATCH v6 16/19] target-arm: ensure BQL taken for ARM_CP_IO register access, Alex Bennée, 2016/11/09
- [Qemu-devel] [PATCH v6 18/19] target-arm: don't generate WFE/YIELD calls for MTTCG, Alex Bennée, 2016/11/09
- [Qemu-devel] [PATCH v6 14/19] target-arm/powerctl: defer cpu reset work to CPU context, Alex Bennée, 2016/11/09