[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC v2 0/5] Dynamic TLB sizing
From: |
Emilio G. Cota |
Subject: |
[Qemu-devel] [RFC v2 0/5] Dynamic TLB sizing |
Date: |
Mon, 8 Oct 2018 19:27:51 -0400 |
v1: https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg01146.html
Changes since v1:
- Add tlb_index and tlb_entry helpers from Richard
- Introduce sizeof_tlb() and tlb_n_entries()
- Extract tlb_mask as its own array in CPUArchState, as
suggested by Richard. For the associated helpers (tlb_index etc)
I tried several approaches, and performance-wise they're all
the same, so went for the simplest implementation.
- Use uintptr_t for tlb_mask, as done in Richard's patch
+ tcg/i386: use hrexw when reading tlb_mask
+ Define tlbtype and tlbrexw solely based on TARGET_PAGE_BITS
- Rename tlb_is_invalid to tlb_entry_is_empty, comparing all
fields (except .addend) against -1.
- Rename CPUTLBDesc.used to .n_used_entries.
- Drop the MIN/MAX CPU_TLB_BITS patches, defining instead
some values for MIN/MAX as well as a default.
- Use new_size and old_size consistently in the resizing function,
as suggested by Richard.
- Add an additional chart to the last patch, where softmmu
performance is compared against user-mode:
https://imgur.com/a/eXkjMCE
You can fetch this series from:
https://github.com/cota/qemu/tree/tlb-dyn-v2
Note that it applies on top of my tlb-lock-v4 series:
https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg01421.html
Thanks,
Emilio