[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 3/6] target/ppc: 4xx don't flush TLB for a newly written soft
From: |
Nicholas Piggin |
Subject: |
[RFC PATCH 3/6] target/ppc: 4xx don't flush TLB for a newly written software TLB entry |
Date: |
Tue, 14 Nov 2023 22:38:01 +1000 |
BookE software TLB is implemented by flushing old translations from the
relevant TCG TLB whenever software TLB entries change. This means a new
software TLB entry should not have any corresponding cached TCG TLB
translations, so there is nothing to flush. The exception is multiple
software TLBs that cover the same address and address space, but that
is a programming error and results in undefined behaviour, and flushing
does not give an obviously better outcome in that case either.
Remove the unnecessary flush of a newly written software TLB entry.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
target/ppc/mmu_helper.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/target/ppc/mmu_helper.c b/target/ppc/mmu_helper.c
index 949ae87f4f..68632bf54e 100644
--- a/target/ppc/mmu_helper.c
+++ b/target/ppc/mmu_helper.c
@@ -808,13 +808,6 @@ void helper_4xx_tlbwe_hi(CPUPPCState *env, target_ulong
entry,
tlb->prot & PAGE_WRITE ? 'w' : '-',
tlb->prot & PAGE_EXEC ? 'x' : '-',
tlb->prot & PAGE_VALID ? 'v' : '-', (int)tlb->PID);
- /* Invalidate new TLB (if valid) */
- if (tlb->prot & PAGE_VALID) {
- qemu_log_mask(CPU_LOG_MMU, "%s: invalidate TLB %d start "
- TARGET_FMT_lx " end " TARGET_FMT_lx "\n", __func__,
- (int)entry, tlb->EPN, tlb->EPN + tlb->size);
- ppcemb_tlb_flush(cs, tlb);
- }
}
void helper_4xx_tlbwe_lo(CPUPPCState *env, target_ulong entry,
--
2.42.0
- [RFC PATCH 0/6] target/ppc: Improve 4xx and 440 tlbwe, Nicholas Piggin, 2023/11/14
- [RFC PATCH 1/6] target/ppc: Fix 440 tlbwe TLB invalidation gaps, Nicholas Piggin, 2023/11/14
- [RFC PATCH 2/6] target/ppc: Factor out 4xx ppcemb_tlb_t flushing, Nicholas Piggin, 2023/11/14
- [RFC PATCH 3/6] target/ppc: 4xx don't flush TLB for a newly written software TLB entry,
Nicholas Piggin <=
- [RFC PATCH 4/6] target/ppc: 4xx optimise tlbwe_lo TLB flushing, Nicholas Piggin, 2023/11/14
- [RFC PATCH 5/6] target/ppc: 440 optimise tlbwe TLB flushing, Nicholas Piggin, 2023/11/14
- [RFC PATCH 6/6] target/ppc: optimise ppcemb_tlb_t flushing, Nicholas Piggin, 2023/11/14
- Re: [RFC PATCH 0/6] target/ppc: Improve 4xx and 440 tlbwe, BALATON Zoltan, 2023/11/15