qemu-devel.nongnu.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).