All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/9] cputlb: Various cleanups
@ 2020-01-09  2:48 Richard Henderson
  2020-01-09  2:48 ` [PATCH 1/9] cputlb: Merge tlb_table_flush_by_mmuidx into tlb_flush_one_mmuidx_locked Richard Henderson
                   ` (9 more replies)
  0 siblings, 10 replies; 37+ messages in thread
From: Richard Henderson @ 2020-01-09  2:48 UTC (permalink / raw)
  To: qemu-devel; +Cc: alistair.francis

I had a conversation with Alistair Francis at KVM forum about
being able to represent ASIDs "properly".  This lead to the idea
that target-specific code might be able to cache TLBs outside of
the "main" NB_MMU_MODES -- possibly thousands of them.

This goes nowhere near that far.  But it does begin edging toward
the possibility of having a

    struct CPUTLBSaved {
        CPUTLBDesc d;
        CPUTLBDescFast f;
    };

by moving some of the most basic routines to use CPUTLBDesc and
CPUTLBDescFast directly instead of always using an mmu_idx.

I'm not sure how much time I'll have to go further along these
lines, but what I have so far still looks like a cleanup.


r~


Richard Henderson (9):
  cputlb: Merge tlb_table_flush_by_mmuidx into
    tlb_flush_one_mmuidx_locked
  cputlb: Make tlb_n_entries private to cputlb.c
  cputlb: Pass CPUTLBDescFast to tlb_n_entries and sizeof_tlb
  cputlb: Hoist tlb portions in tlb_mmu_resize_locked
  cputlb: Hoist tlb portions in tlb_flush_one_mmuidx_locked
  cputlb: Split out tlb_mmu_flush_locked
  cputlb: Partially merge tlb_dyn_init into tlb_init
  cputlb: Initialize tlbs as flushed
  cputlb: Hoist timestamp outside of loops over tlbs

 include/exec/cpu_ldst.h |   5 --
 accel/tcg/cputlb.c      | 120 +++++++++++++++++++++-------------------
 2 files changed, 64 insertions(+), 61 deletions(-)

-- 
2.20.1



^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2020-01-20 23:12 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-01-09  2:48 [PATCH 0/9] cputlb: Various cleanups Richard Henderson
2020-01-09  2:48 ` [PATCH 1/9] cputlb: Merge tlb_table_flush_by_mmuidx into tlb_flush_one_mmuidx_locked Richard Henderson
2020-01-20  0:34   ` Alistair Francis
2020-01-20 13:34   ` Alex Bennée
2020-01-09  2:49 ` [PATCH 2/9] cputlb: Make tlb_n_entries private to cputlb.c Richard Henderson
2020-01-20  0:36   ` Alistair Francis
2020-01-20  8:53   ` Philippe Mathieu-Daudé
2020-01-20 13:34   ` Alex Bennée
2020-01-09  2:49 ` [PATCH 3/9] cputlb: Pass CPUTLBDescFast to tlb_n_entries and sizeof_tlb Richard Henderson
2020-01-20  0:37   ` Alistair Francis
2020-01-20  8:54   ` Philippe Mathieu-Daudé
2020-01-20 13:36   ` Alex Bennée
2020-01-20 13:39   ` Alex Bennée
2020-01-09  2:49 ` [PATCH 4/9] cputlb: Hoist tlb portions in tlb_mmu_resize_locked Richard Henderson
2020-01-20  8:58   ` Philippe Mathieu-Daudé
2020-01-20 12:05   ` Alistair Francis
2020-01-20 13:40   ` Alex Bennée
2020-01-09  2:49 ` [PATCH 5/9] cputlb: Hoist tlb portions in tlb_flush_one_mmuidx_locked Richard Henderson
2020-01-20  8:58   ` Philippe Mathieu-Daudé
2020-01-20 13:41   ` Alex Bennée
2020-01-20 22:56   ` Alistair Francis
2020-01-09  2:49 ` [PATCH 6/9] cputlb: Split out tlb_mmu_flush_locked Richard Henderson
2020-01-20  8:59   ` Philippe Mathieu-Daudé
2020-01-20 13:41   ` Alex Bennée
2020-01-20 22:58   ` Alistair Francis
2020-01-09  2:49 ` [PATCH 7/9] cputlb: Partially merge tlb_dyn_init into tlb_init Richard Henderson
2020-01-20  9:01   ` Philippe Mathieu-Daudé
2020-01-20 14:33   ` Alex Bennée
2020-01-20 23:00   ` Alistair Francis
2020-01-09  2:49 ` [PATCH 8/9] cputlb: Initialize tlbs as flushed Richard Henderson
2020-01-20 14:33   ` Alex Bennée
2020-01-20 23:01   ` Alistair Francis
2020-01-09  2:49 ` [PATCH 9/9] cputlb: Hoist timestamp outside of loops over tlbs Richard Henderson
2020-01-20  9:02   ` Philippe Mathieu-Daudé
2020-01-20 14:36   ` Alex Bennée
2020-01-20 23:02   ` Alistair Francis
2020-01-20 23:03 ` [PATCH 0/9] cputlb: Various cleanups Alistair Francis

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.