cputlb: Remove tlb_c.pending_flushes
This is essentially redundant with tlb_c.dirty. Tested-by: Emilio G. Cota <cota@braap.org> Reviewed-by: Emilio G. Cota <cota@braap.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
3d1523ced6
commit
ab65110530
@ -174,20 +174,8 @@ void tlb_flush_by_mmuidx(CPUState *cpu, uint16_t idxmap)
|
||||
tlb_debug("mmu_idx: 0x%" PRIx16 "\n", idxmap);
|
||||
|
||||
if (cpu->created && !qemu_cpu_is_self(cpu)) {
|
||||
CPUArchState *env = cpu->env_ptr;
|
||||
uint16_t pending, to_clean;
|
||||
|
||||
qemu_spin_lock(&env->tlb_c.lock);
|
||||
pending = env->tlb_c.pending_flush;
|
||||
to_clean = idxmap & ~pending;
|
||||
env->tlb_c.pending_flush = pending | idxmap;
|
||||
qemu_spin_unlock(&env->tlb_c.lock);
|
||||
|
||||
if (to_clean) {
|
||||
tlb_debug("reduced mmu_idx: 0x%" PRIx16 "\n", to_clean);
|
||||
async_run_on_cpu(cpu, tlb_flush_by_mmuidx_async_work,
|
||||
RUN_ON_CPU_HOST_INT(to_clean));
|
||||
}
|
||||
async_run_on_cpu(cpu, tlb_flush_by_mmuidx_async_work,
|
||||
RUN_ON_CPU_HOST_INT(idxmap));
|
||||
} else {
|
||||
tlb_flush_by_mmuidx_async_work(cpu, RUN_ON_CPU_HOST_INT(idxmap));
|
||||
}
|
||||
|
@ -160,12 +160,6 @@ typedef struct CPUTLBDesc {
|
||||
typedef struct CPUTLBCommon {
|
||||
/* Serialize updates to tlb_table and tlb_v_table, and others as noted. */
|
||||
QemuSpin lock;
|
||||
/*
|
||||
* Within pending_flush, for each bit N, there exists an outstanding
|
||||
* cross-cpu flush for mmu_idx N. Further cross-cpu flushes to that
|
||||
* mmu_idx may be discarded. Protected by tlb_c.lock.
|
||||
*/
|
||||
uint16_t pending_flush;
|
||||
/*
|
||||
* Within dirty, for each bit N, modifications have been made to
|
||||
* mmu_idx N since the last time that mmu_idx was flushed.
|
||||
|
Loading…
Reference in New Issue
Block a user