x86: pre-allocate address space
We no longer use a page pool to draw memory pages when doing memory map operations. We now preallocate the entire virtual address space so no allocations are ever necessary when mapping memory. We still need memory to clone page tables, but this is now expressed by a new Kconfig X86_MAX_ADDITIONAL_MEM_DOMAINS which has much clearer semantics than specifying the number of pages in the pool. The default address space size is now 8MB, but this can be tuned by the application. Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This commit is contained in:
parent
ea10c98c08
commit
b0b7756756
19 changed files with 142 additions and 222 deletions
|
@ -17,4 +17,3 @@ CONFIG_MP_NUM_CPUS=2
|
|||
CONFIG_X86_MMU=y
|
||||
CONFIG_X86_VERY_EARLY_CONSOLE=y
|
||||
CONFIG_QEMU_ICOUNT=n
|
||||
CONFIG_X86_MMU_PAGE_POOL_PAGES=23
|
||||
|
|
|
@ -18,4 +18,3 @@ CONFIG_X86_MMU=y
|
|||
CONFIG_X86_VERY_EARLY_CONSOLE=y
|
||||
CONFIG_QEMU_ICOUNT=n
|
||||
CONFIG_X86_KPTI=n
|
||||
CONFIG_X86_MMU_PAGE_POOL_PAGES=16
|
||||
|
|
|
@ -12,7 +12,6 @@ CONFIG_UART_CONSOLE=y
|
|||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=25000000
|
||||
CONFIG_TEST_RANDOM_GENERATOR=y
|
||||
CONFIG_X86_MMU=y
|
||||
CONFIG_X86_MMU_PAGE_POOL_PAGES=17
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_SCHED_SCALABLE=y
|
||||
CONFIG_WAITQ_SCALABLE=y
|
||||
|
|
|
@ -12,7 +12,6 @@ CONFIG_UART_CONSOLE=y
|
|||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=25000000
|
||||
CONFIG_TEST_RANDOM_GENERATOR=y
|
||||
CONFIG_X86_MMU=y
|
||||
CONFIG_X86_MMU_PAGE_POOL_PAGES=17
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_SCHED_SCALABLE=y
|
||||
CONFIG_WAITQ_SCALABLE=y
|
||||
|
|
|
@ -12,7 +12,6 @@ CONFIG_UART_CONSOLE=y
|
|||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=25000000
|
||||
CONFIG_TEST_RANDOM_GENERATOR=y
|
||||
CONFIG_X86_MMU=y
|
||||
CONFIG_X86_MMU_PAGE_POOL_PAGES=12
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_SCHED_SCALABLE=y
|
||||
CONFIG_WAITQ_SCALABLE=y
|
||||
|
|
|
@ -12,7 +12,6 @@ CONFIG_UART_CONSOLE=y
|
|||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=25000000
|
||||
CONFIG_TEST_RANDOM_GENERATOR=y
|
||||
CONFIG_X86_MMU=y
|
||||
CONFIG_X86_MMU_PAGE_POOL_PAGES=10
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_SCHED_SCALABLE=y
|
||||
CONFIG_WAITQ_SCALABLE=y
|
||||
|
|
|
@ -5,5 +5,5 @@
|
|||
*/
|
||||
|
||||
#define DT_DRAM_BASE 0x100000
|
||||
#define DT_DRAM_SIZE DT_SIZE_K(128)
|
||||
#define DT_DRAM_SIZE DT_SIZE_K(256)
|
||||
#include "qemu_x86.dts"
|
||||
|
|
|
@ -23,6 +23,5 @@ CONFIG_X86_COMMON_PAGE_TABLE=y
|
|||
CONFIG_X86_KPTI=n
|
||||
CONFIG_KERNEL_VM_SIZE=0x400000
|
||||
CONFIG_KERNEL_VM_BASE=0x0
|
||||
CONFIG_X86_MMU_PAGE_POOL_PAGES=0
|
||||
CONFIG_KERNEL_VM_OFFSET=0x100000
|
||||
CONFIG_X86_KERNEL_OFFSET=0
|
Loading…
Add table
Add a link
Reference in a new issue