[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH V7 14/19] cpu: introduce tlb_flush*_all.
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [RFC PATCH V7 14/19] cpu: introduce tlb_flush*_all. |
Date: |
Mon, 10 Aug 2015 17:00:41 +0100 |
On 10 August 2015 at 16:54, Paolo Bonzini <address@hidden> wrote:
> On 10/08/2015 17:27, address@hidden wrote:
>> From: KONRAD Frederic <address@hidden>
>>
>> Some architectures allow to flush the tlb of other VCPUs. This is not a
>> problem
>> when we have only one thread for all VCPUs but it definitely needs to be an
>> asynchronous work when we are in true multithreaded work.
>>
>> TODO: Some test case, I fear some bad results in case a VCPUs execute a
>> barrier
>> or something like that.
>>
>> Signed-off-by: KONRAD Frederic <address@hidden>
>> ---
>> cputlb.c | 76
>> +++++++++++++++++++++++++++++++++++++++++++++++++
>> include/exec/exec-all.h | 2 ++
>> 2 files changed, 78 insertions(+)
>
> I still believe this should be a target-specific change. This would
> also make it easier to do the remote TLB flush synchronously, as is the
> case on ARM (if I understand correctly).
ARM TLB flushes have to complete by the next barrier instruction
(or equivalent thing); so they're asynchronous but with a guest-controlled
synchronization point.
Also, compare the series I posted recently for adding missing
TLB operations:
https://lists.gnu.org/archive/html/qemu-devel/2015-08/msg00945.html
which adds support for flush-specific-mmuidx operations, which would
increase the number of primitives you're trying to support here.
That might argue for making this target-specific.
thanks
-- PMM
- Re: [Qemu-devel] [RFC PATCH V7 09/19] Drop global lock during TCG code execution, (continued)
- [Qemu-devel] [RFC PATCH V7 11/19] tcg: switch on multithread., fred . konrad, 2015/08/10
- [Qemu-devel] [RFC PATCH V7 13/19] add a callback when tb_invalidate is called., fred . konrad, 2015/08/10
- [Qemu-devel] [RFC PATCH V7 10/19] cpu: remove exit_request global., fred . konrad, 2015/08/10
- [Qemu-devel] [RFC PATCH V7 12/19] Use atomic cmpxchg to atomically check the exclusive value in a STREX, fred . konrad, 2015/08/10
- [Qemu-devel] [RFC PATCH V7 14/19] cpu: introduce tlb_flush*_all., fred . konrad, 2015/08/10
- [Qemu-devel] [RFC PATCH V7 15/19] arm: use tlb_flush*_all, fred . konrad, 2015/08/10
- [Qemu-devel] [RFC PATCH V7 18/19] mttcg: signal the associated cpu anyway., fred . konrad, 2015/08/10
- [Qemu-devel] [RFC PATCH V7 16/19] translate-all: introduces tb_flush_safe., fred . konrad, 2015/08/10
- [Qemu-devel] [RFC PATCH V7 17/19] translate-all: (wip) use tb_flush_safe when we can't alloc more tb., fred . konrad, 2015/08/10
- [Qemu-devel] [RFC PATCH V7 19/19] target-arm/psci.c: wake up sleeping CPUs (MTTCG), fred . konrad, 2015/08/10