Message ID | 20241009150855.804605-3-richard.henderson@linaro.org |
---|---|
State | New |
Headers | show |
Series | accel/tcg: Convert victim tlb to IntervalTree | expand |
On 9/10/24 12:08, Richard Henderson wrote: > We will have a need to flush only the "fast" portion > of the tlb, allowing re-fill from the "full" portion. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > accel/tcg/cputlb.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
On 10/9/24 08:08, Richard Henderson wrote: > We will have a need to flush only the "fast" portion > of the tlb, allowing re-fill from the "full" portion. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > accel/tcg/cputlb.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c > index b76a4eac4e..c1838412e8 100644 > --- a/accel/tcg/cputlb.c > +++ b/accel/tcg/cputlb.c > @@ -284,13 +284,18 @@ static void tlb_mmu_resize_locked(CPUTLBDesc *desc, CPUTLBDescFast *fast, > } > } > > -static void tlb_mmu_flush_locked(CPUTLBDesc *desc, CPUTLBDescFast *fast) > +static void tlbfast_flush_locked(CPUTLBDesc *desc, CPUTLBDescFast *fast) > { > desc->n_used_entries = 0; > + memset(fast->table, -1, sizeof_tlb(fast)); > +} > + > +static void tlb_mmu_flush_locked(CPUTLBDesc *desc, CPUTLBDescFast *fast) > +{ > + tlbfast_flush_locked(desc, fast); > desc->large_page_addr = -1; > desc->large_page_mask = -1; > desc->vindex = 0; > - memset(fast->table, -1, sizeof_tlb(fast)); > memset(desc->vtable, -1, sizeof(desc->vtable)); > } > Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index b76a4eac4e..c1838412e8 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -284,13 +284,18 @@ static void tlb_mmu_resize_locked(CPUTLBDesc *desc, CPUTLBDescFast *fast, } } -static void tlb_mmu_flush_locked(CPUTLBDesc *desc, CPUTLBDescFast *fast) +static void tlbfast_flush_locked(CPUTLBDesc *desc, CPUTLBDescFast *fast) { desc->n_used_entries = 0; + memset(fast->table, -1, sizeof_tlb(fast)); +} + +static void tlb_mmu_flush_locked(CPUTLBDesc *desc, CPUTLBDescFast *fast) +{ + tlbfast_flush_locked(desc, fast); desc->large_page_addr = -1; desc->large_page_mask = -1; desc->vindex = 0; - memset(fast->table, -1, sizeof_tlb(fast)); memset(desc->vtable, -1, sizeof(desc->vtable)); }
We will have a need to flush only the "fast" portion of the tlb, allowing re-fill from the "full" portion. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- accel/tcg/cputlb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)