qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

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