mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-28 04:21:50 -06:00
accel/tcg: Restrict CPU_TLB_DYN_*_BITS definitions to accel/tcg/
CPU_TLB_DYN_*_BITS definitions are only used by accel/tcg/cputlb.c and accel/tcg/translate-all.c. Move them to accel/tcg/tb-internal.h. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20250305191859.71608-1-philmd@linaro.org>
This commit is contained in:
parent
44ed2fd1ea
commit
3504f104ea
2 changed files with 27 additions and 26 deletions
|
@ -13,6 +13,33 @@
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
#include "exec/translation-block.h"
|
#include "exec/translation-block.h"
|
||||||
|
|
||||||
|
#ifdef CONFIG_SOFTMMU
|
||||||
|
|
||||||
|
#define CPU_TLB_DYN_MIN_BITS 6
|
||||||
|
#define CPU_TLB_DYN_DEFAULT_BITS 8
|
||||||
|
|
||||||
|
# if HOST_LONG_BITS == 32
|
||||||
|
/* Make sure we do not require a double-word shift for the TLB load */
|
||||||
|
# define CPU_TLB_DYN_MAX_BITS (32 - TARGET_PAGE_BITS)
|
||||||
|
# else /* HOST_LONG_BITS == 64 */
|
||||||
|
/*
|
||||||
|
* Assuming TARGET_PAGE_BITS==12, with 2**22 entries we can cover 2**(22+12) ==
|
||||||
|
* 2**34 == 16G of address space. This is roughly what one would expect a
|
||||||
|
* TLB to cover in a modern (as of 2018) x86_64 CPU. For instance, Intel
|
||||||
|
* Skylake's Level-2 STLB has 16 1G entries.
|
||||||
|
* Also, make sure we do not size the TLB past the guest's address space.
|
||||||
|
*/
|
||||||
|
# ifdef TARGET_PAGE_BITS_VARY
|
||||||
|
# define CPU_TLB_DYN_MAX_BITS \
|
||||||
|
MIN(22, TARGET_VIRT_ADDR_SPACE_BITS - TARGET_PAGE_BITS)
|
||||||
|
# else
|
||||||
|
# define CPU_TLB_DYN_MAX_BITS \
|
||||||
|
MIN_CONST(22, TARGET_VIRT_ADDR_SPACE_BITS - TARGET_PAGE_BITS)
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif /* CONFIG_SOFTMMU */
|
||||||
|
|
||||||
#ifdef CONFIG_USER_ONLY
|
#ifdef CONFIG_USER_ONLY
|
||||||
#include "user/page-protection.h"
|
#include "user/page-protection.h"
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -46,30 +46,4 @@
|
||||||
|
|
||||||
#include "exec/target_long.h"
|
#include "exec/target_long.h"
|
||||||
|
|
||||||
#if defined(CONFIG_SOFTMMU) && defined(CONFIG_TCG)
|
|
||||||
#define CPU_TLB_DYN_MIN_BITS 6
|
|
||||||
#define CPU_TLB_DYN_DEFAULT_BITS 8
|
|
||||||
|
|
||||||
# if HOST_LONG_BITS == 32
|
|
||||||
/* Make sure we do not require a double-word shift for the TLB load */
|
|
||||||
# define CPU_TLB_DYN_MAX_BITS (32 - TARGET_PAGE_BITS)
|
|
||||||
# else /* HOST_LONG_BITS == 64 */
|
|
||||||
/*
|
|
||||||
* Assuming TARGET_PAGE_BITS==12, with 2**22 entries we can cover 2**(22+12) ==
|
|
||||||
* 2**34 == 16G of address space. This is roughly what one would expect a
|
|
||||||
* TLB to cover in a modern (as of 2018) x86_64 CPU. For instance, Intel
|
|
||||||
* Skylake's Level-2 STLB has 16 1G entries.
|
|
||||||
* Also, make sure we do not size the TLB past the guest's address space.
|
|
||||||
*/
|
|
||||||
# ifdef TARGET_PAGE_BITS_VARY
|
|
||||||
# define CPU_TLB_DYN_MAX_BITS \
|
|
||||||
MIN(22, TARGET_VIRT_ADDR_SPACE_BITS - TARGET_PAGE_BITS)
|
|
||||||
# else
|
|
||||||
# define CPU_TLB_DYN_MAX_BITS \
|
|
||||||
MIN_CONST(22, TARGET_VIRT_ADDR_SPACE_BITS - TARGET_PAGE_BITS)
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#endif /* CONFIG_SOFTMMU && CONFIG_TCG */
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue